AI in Industry (Brain Tumor segmentation)¶
According to the definition of industry as any activity that generates value, the medical field is considered one of the most important and vital industries. With the help of AI, many processes from diagnosis to treatment can be automated to improve speed and efficiency.

AI plays a crucial role in this field in several ways, such as:
- Medical Imaging and Diagnostics :
- Predictive Analytics
- Robotic Surgery
- Virtual Health Assistants
AI-driven robotic systems assist surgeons in performing precise and minimally invasive procedures
AI systems analyze patient data to predict disease progression, treatment responses, or risk of complications.
AI algorithms can analyze medical images (e.g., X-rays, MRIs) to detect abnormalities like tumors or fractures with high accuracy.
AI chatbots and virtual assistants help patients with scheduling, medication reminders, and answering basic health queries.
BraTS-Lighthouse 2025 Challenge¶
Refer to the BraTS Challenge for more information about the 2025 competition.
Requirements.txt¶
kagglehub
tensorflow
numpy
pandas
matplotlib.pyplot
sklearn
nibabel
skimage
random
os
cv2
glob
# Connecting Google drive to colab file
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
# import libraries
import warnings
warnings.filterwarnings("ignore", category=ImportWarning)
import kagglehub
import os
import shutil
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
import pandas as pd
import cv2
from sklearn.preprocessing import MinMaxScaler
from skimage.transform import rotate
from skimage.util import montage
import nibabel as nib
import tensorflow as tf
from tensorflow import keras
import tensorflow.keras.backend as K
from tensorflow.keras.layers import Conv2D, MaxPooling2D, UpSampling2D, Dropout, concatenate, Input, BatchNormalization, Add, Activation
from tensorflow.keras.models import Model, load_model
from tensorflow.keras.utils import plot_model
from tensorflow.keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, CSVLogger
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.metrics import MeanIoU
import glob
import random
import matplotlib.colors as mcolors
Exploring Database (BraTS2020 Dataset)¶

The dataset contains 3D MRI images in NIfTI format (.nii.gz). Each patient record includes four MRI modalities and one segmentation mask:
T1: Native Scan
T1ce: Contrast-Enhanced T1 Scan
T2: T2-Weighted Scan
FLAIR: Fluid-Attenuated Inversion Recovery Scan
Segmentation masks represent labeled regions as follows:
0: Background (no tumor)
1: Non-Enhancing Tumor Core
2: Peritumoral Edema (swelling around the tumor)
3: Missing label
4: Enhancing Tumor
Explore BraTS2020 Dataset on Kaggle for more detailed data.
# Load dataset from Kagglehub
path = kagglehub.dataset_download("awsaf49/brats20-dataset-training-validation")
print("Path to dataset files:", path)
Path to dataset files: /kaggle/input/brats20-dataset-training-validation
# Find out about structure of dataset
for root, dirs, files in os.walk(path):
print(f"\nDirectory: {root}")
for f in files:
print(" ", f)
Directory: /kaggle/input/brats20-dataset-training-validation Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData name_mapping_validation_data.csv survival_evaluation.csv Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_084 BraTS20_Validation_084_flair.nii BraTS20_Validation_084_t2.nii BraTS20_Validation_084_t1ce.nii BraTS20_Validation_084_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_118 BraTS20_Validation_118_t2.nii BraTS20_Validation_118_t1.nii BraTS20_Validation_118_t1ce.nii BraTS20_Validation_118_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_111 BraTS20_Validation_111_flair.nii BraTS20_Validation_111_t2.nii BraTS20_Validation_111_t1ce.nii BraTS20_Validation_111_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_060 BraTS20_Validation_060_t2.nii BraTS20_Validation_060_t1.nii BraTS20_Validation_060_t1ce.nii BraTS20_Validation_060_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_034 BraTS20_Validation_034_t2.nii BraTS20_Validation_034_flair.nii BraTS20_Validation_034_t1.nii BraTS20_Validation_034_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_045 BraTS20_Validation_045_t1ce.nii BraTS20_Validation_045_t2.nii BraTS20_Validation_045_flair.nii BraTS20_Validation_045_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_027 BraTS20_Validation_027_t2.nii BraTS20_Validation_027_t1.nii BraTS20_Validation_027_t1ce.nii BraTS20_Validation_027_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_073 BraTS20_Validation_073_t1.nii BraTS20_Validation_073_t2.nii BraTS20_Validation_073_flair.nii BraTS20_Validation_073_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_014 BraTS20_Validation_014_flair.nii BraTS20_Validation_014_t2.nii BraTS20_Validation_014_t1.nii BraTS20_Validation_014_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_047 BraTS20_Validation_047_flair.nii BraTS20_Validation_047_t1ce.nii BraTS20_Validation_047_t1.nii BraTS20_Validation_047_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_096 BraTS20_Validation_096_flair.nii BraTS20_Validation_096_t1ce.nii BraTS20_Validation_096_t1.nii BraTS20_Validation_096_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_068 BraTS20_Validation_068_t1ce.nii BraTS20_Validation_068_t2.nii BraTS20_Validation_068_t1.nii BraTS20_Validation_068_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_090 BraTS20_Validation_090_t1.nii BraTS20_Validation_090_flair.nii BraTS20_Validation_090_t1ce.nii BraTS20_Validation_090_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_038 BraTS20_Validation_038_flair.nii BraTS20_Validation_038_t1.nii BraTS20_Validation_038_t2.nii BraTS20_Validation_038_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_017 BraTS20_Validation_017_t2.nii BraTS20_Validation_017_flair.nii BraTS20_Validation_017_t1ce.nii BraTS20_Validation_017_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_069 BraTS20_Validation_069_t1ce.nii BraTS20_Validation_069_t2.nii BraTS20_Validation_069_flair.nii BraTS20_Validation_069_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_071 BraTS20_Validation_071_t1.nii BraTS20_Validation_071_flair.nii BraTS20_Validation_071_t2.nii BraTS20_Validation_071_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_092 BraTS20_Validation_092_t2.nii BraTS20_Validation_092_t1.nii BraTS20_Validation_092_t1ce.nii BraTS20_Validation_092_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_015 BraTS20_Validation_015_t2.nii BraTS20_Validation_015_t1.nii BraTS20_Validation_015_flair.nii BraTS20_Validation_015_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_117 BraTS20_Validation_117_flair.nii BraTS20_Validation_117_t2.nii BraTS20_Validation_117_t1.nii BraTS20_Validation_117_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_004 BraTS20_Validation_004_t1ce.nii BraTS20_Validation_004_t1.nii BraTS20_Validation_004_flair.nii BraTS20_Validation_004_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_103 BraTS20_Validation_103_t1ce.nii BraTS20_Validation_103_t2.nii BraTS20_Validation_103_t1.nii BraTS20_Validation_103_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_035 BraTS20_Validation_035_t1ce.nii BraTS20_Validation_035_t1.nii BraTS20_Validation_035_t2.nii BraTS20_Validation_035_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_033 BraTS20_Validation_033_t1ce.nii BraTS20_Validation_033_t1.nii BraTS20_Validation_033_t2.nii BraTS20_Validation_033_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_021 BraTS20_Validation_021_t1ce.nii BraTS20_Validation_021_flair.nii BraTS20_Validation_021_t1.nii BraTS20_Validation_021_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_061 BraTS20_Validation_061_t1ce.nii BraTS20_Validation_061_t1.nii BraTS20_Validation_061_t2.nii BraTS20_Validation_061_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_079 BraTS20_Validation_079_t2.nii BraTS20_Validation_079_flair.nii BraTS20_Validation_079_t1.nii BraTS20_Validation_079_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_085 BraTS20_Validation_085_t2.nii BraTS20_Validation_085_t1.nii BraTS20_Validation_085_t1ce.nii BraTS20_Validation_085_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_112 BraTS20_Validation_112_flair.nii BraTS20_Validation_112_t1.nii BraTS20_Validation_112_t1ce.nii BraTS20_Validation_112_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_065 BraTS20_Validation_065_t1.nii BraTS20_Validation_065_flair.nii BraTS20_Validation_065_t1ce.nii BraTS20_Validation_065_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_037 BraTS20_Validation_037_t1ce.nii BraTS20_Validation_037_t1.nii BraTS20_Validation_037_flair.nii BraTS20_Validation_037_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_053 BraTS20_Validation_053_t1ce.nii BraTS20_Validation_053_t2.nii BraTS20_Validation_053_t1.nii BraTS20_Validation_053_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_005 BraTS20_Validation_005_flair.nii BraTS20_Validation_005_t2.nii BraTS20_Validation_005_t1ce.nii BraTS20_Validation_005_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_064 BraTS20_Validation_064_t2.nii BraTS20_Validation_064_flair.nii BraTS20_Validation_064_t1.nii BraTS20_Validation_064_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_091 BraTS20_Validation_091_t1ce.nii BraTS20_Validation_091_flair.nii BraTS20_Validation_091_t1.nii BraTS20_Validation_091_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_042 BraTS20_Validation_042_t1.nii BraTS20_Validation_042_flair.nii BraTS20_Validation_042_t2.nii BraTS20_Validation_042_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_078 BraTS20_Validation_078_t1.nii BraTS20_Validation_078_flair.nii BraTS20_Validation_078_t2.nii BraTS20_Validation_078_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_100 BraTS20_Validation_100_t2.nii BraTS20_Validation_100_t1ce.nii BraTS20_Validation_100_t1.nii BraTS20_Validation_100_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_019 BraTS20_Validation_019_t2.nii BraTS20_Validation_019_t1.nii BraTS20_Validation_019_t1ce.nii BraTS20_Validation_019_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_063 BraTS20_Validation_063_flair.nii BraTS20_Validation_063_t1.nii BraTS20_Validation_063_t1ce.nii BraTS20_Validation_063_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_010 BraTS20_Validation_010_t1.nii BraTS20_Validation_010_t1ce.nii BraTS20_Validation_010_t2.nii BraTS20_Validation_010_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_081 BraTS20_Validation_081_flair.nii BraTS20_Validation_081_t2.nii BraTS20_Validation_081_t1.nii BraTS20_Validation_081_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_022 BraTS20_Validation_022_flair.nii BraTS20_Validation_022_t2.nii BraTS20_Validation_022_t1ce.nii BraTS20_Validation_022_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_043 BraTS20_Validation_043_t1.nii BraTS20_Validation_043_t1ce.nii BraTS20_Validation_043_t2.nii BraTS20_Validation_043_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_074 BraTS20_Validation_074_t1ce.nii BraTS20_Validation_074_t2.nii BraTS20_Validation_074_t1.nii BraTS20_Validation_074_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_072 BraTS20_Validation_072_flair.nii BraTS20_Validation_072_t2.nii BraTS20_Validation_072_t1ce.nii BraTS20_Validation_072_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_094 BraTS20_Validation_094_flair.nii BraTS20_Validation_094_t2.nii BraTS20_Validation_094_t1ce.nii BraTS20_Validation_094_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_076 BraTS20_Validation_076_t2.nii BraTS20_Validation_076_flair.nii BraTS20_Validation_076_t1ce.nii BraTS20_Validation_076_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_095 BraTS20_Validation_095_t1.nii BraTS20_Validation_095_flair.nii BraTS20_Validation_095_t2.nii BraTS20_Validation_095_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_018 BraTS20_Validation_018_t2.nii BraTS20_Validation_018_flair.nii BraTS20_Validation_018_t1.nii BraTS20_Validation_018_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_056 BraTS20_Validation_056_t1.nii BraTS20_Validation_056_t1ce.nii BraTS20_Validation_056_t2.nii BraTS20_Validation_056_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_105 BraTS20_Validation_105_t2.nii BraTS20_Validation_105_flair.nii BraTS20_Validation_105_t1.nii BraTS20_Validation_105_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_121 BraTS20_Validation_121_t2.nii BraTS20_Validation_121_t1.nii BraTS20_Validation_121_flair.nii BraTS20_Validation_121_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_089 BraTS20_Validation_089_t1.nii BraTS20_Validation_089_flair.nii BraTS20_Validation_089_t2.nii BraTS20_Validation_089_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_115 BraTS20_Validation_115_flair.nii BraTS20_Validation_115_t1ce.nii BraTS20_Validation_115_t1.nii BraTS20_Validation_115_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_082 BraTS20_Validation_082_t2.nii BraTS20_Validation_082_flair.nii BraTS20_Validation_082_t1ce.nii BraTS20_Validation_082_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_011 BraTS20_Validation_011_t1ce.nii BraTS20_Validation_011_t1.nii BraTS20_Validation_011_t2.nii BraTS20_Validation_011_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_124 BraTS20_Validation_124_flair.nii BraTS20_Validation_124_t2.nii BraTS20_Validation_124_t1.nii BraTS20_Validation_124_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_098 BraTS20_Validation_098_flair.nii BraTS20_Validation_098_t1.nii BraTS20_Validation_098_t2.nii BraTS20_Validation_098_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_108 BraTS20_Validation_108_flair.nii BraTS20_Validation_108_t2.nii BraTS20_Validation_108_t1ce.nii BraTS20_Validation_108_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_110 BraTS20_Validation_110_t1ce.nii BraTS20_Validation_110_t2.nii BraTS20_Validation_110_t1.nii BraTS20_Validation_110_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_116 BraTS20_Validation_116_t2.nii BraTS20_Validation_116_t1.nii BraTS20_Validation_116_flair.nii BraTS20_Validation_116_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_036 BraTS20_Validation_036_flair.nii BraTS20_Validation_036_t1.nii BraTS20_Validation_036_t1ce.nii BraTS20_Validation_036_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_044 BraTS20_Validation_044_flair.nii BraTS20_Validation_044_t1.nii BraTS20_Validation_044_t1ce.nii BraTS20_Validation_044_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_097 BraTS20_Validation_097_t2.nii BraTS20_Validation_097_flair.nii BraTS20_Validation_097_t1ce.nii BraTS20_Validation_097_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_102 BraTS20_Validation_102_t2.nii BraTS20_Validation_102_t1.nii BraTS20_Validation_102_flair.nii BraTS20_Validation_102_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_008 BraTS20_Validation_008_t2.nii BraTS20_Validation_008_t1ce.nii BraTS20_Validation_008_t1.nii BraTS20_Validation_008_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_040 BraTS20_Validation_040_t1ce.nii BraTS20_Validation_040_t2.nii BraTS20_Validation_040_flair.nii BraTS20_Validation_040_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_003 BraTS20_Validation_003_t2.nii BraTS20_Validation_003_t1ce.nii BraTS20_Validation_003_flair.nii BraTS20_Validation_003_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_058 BraTS20_Validation_058_t1ce.nii BraTS20_Validation_058_t1.nii BraTS20_Validation_058_t2.nii BraTS20_Validation_058_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_119 BraTS20_Validation_119_t1ce.nii BraTS20_Validation_119_t1.nii BraTS20_Validation_119_t2.nii BraTS20_Validation_119_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_051 BraTS20_Validation_051_t1.nii BraTS20_Validation_051_t1ce.nii BraTS20_Validation_051_t2.nii BraTS20_Validation_051_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_006 BraTS20_Validation_006_t2.nii BraTS20_Validation_006_flair.nii BraTS20_Validation_006_t1.nii BraTS20_Validation_006_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_106 BraTS20_Validation_106_t2.nii BraTS20_Validation_106_flair.nii BraTS20_Validation_106_t1ce.nii BraTS20_Validation_106_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_031 BraTS20_Validation_031_flair.nii BraTS20_Validation_031_t2.nii BraTS20_Validation_031_t1.nii BraTS20_Validation_031_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_020 BraTS20_Validation_020_t1ce.nii BraTS20_Validation_020_t1.nii BraTS20_Validation_020_t2.nii BraTS20_Validation_020_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_046 BraTS20_Validation_046_t2.nii BraTS20_Validation_046_t1ce.nii BraTS20_Validation_046_t1.nii BraTS20_Validation_046_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_054 BraTS20_Validation_054_flair.nii BraTS20_Validation_054_t1.nii BraTS20_Validation_054_t1ce.nii BraTS20_Validation_054_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_050 BraTS20_Validation_050_t1ce.nii BraTS20_Validation_050_t2.nii BraTS20_Validation_050_flair.nii BraTS20_Validation_050_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_101 BraTS20_Validation_101_flair.nii BraTS20_Validation_101_t2.nii BraTS20_Validation_101_t1ce.nii BraTS20_Validation_101_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_109 BraTS20_Validation_109_t2.nii BraTS20_Validation_109_t1ce.nii BraTS20_Validation_109_flair.nii BraTS20_Validation_109_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_055 BraTS20_Validation_055_t1.nii BraTS20_Validation_055_t2.nii BraTS20_Validation_055_t1ce.nii BraTS20_Validation_055_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_070 BraTS20_Validation_070_t2.nii BraTS20_Validation_070_t1.nii BraTS20_Validation_070_flair.nii BraTS20_Validation_070_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_062 BraTS20_Validation_062_t1.nii BraTS20_Validation_062_flair.nii BraTS20_Validation_062_t2.nii BraTS20_Validation_062_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_028 BraTS20_Validation_028_t2.nii BraTS20_Validation_028_flair.nii BraTS20_Validation_028_t1.nii BraTS20_Validation_028_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_066 BraTS20_Validation_066_flair.nii BraTS20_Validation_066_t1ce.nii BraTS20_Validation_066_t2.nii BraTS20_Validation_066_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_049 BraTS20_Validation_049_t1.nii BraTS20_Validation_049_t1ce.nii BraTS20_Validation_049_flair.nii BraTS20_Validation_049_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_012 BraTS20_Validation_012_flair.nii BraTS20_Validation_012_t2.nii BraTS20_Validation_012_t1.nii BraTS20_Validation_012_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_016 BraTS20_Validation_016_t2.nii BraTS20_Validation_016_t1.nii BraTS20_Validation_016_t1ce.nii BraTS20_Validation_016_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_025 BraTS20_Validation_025_t1.nii BraTS20_Validation_025_t2.nii BraTS20_Validation_025_flair.nii BraTS20_Validation_025_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_059 BraTS20_Validation_059_t1.nii BraTS20_Validation_059_t2.nii BraTS20_Validation_059_t1ce.nii BraTS20_Validation_059_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_057 BraTS20_Validation_057_flair.nii BraTS20_Validation_057_t1.nii BraTS20_Validation_057_t2.nii BraTS20_Validation_057_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_002 BraTS20_Validation_002_flair.nii BraTS20_Validation_002_t1.nii BraTS20_Validation_002_t2.nii BraTS20_Validation_002_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_026 BraTS20_Validation_026_t2.nii BraTS20_Validation_026_t1ce.nii BraTS20_Validation_026_flair.nii BraTS20_Validation_026_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_007 BraTS20_Validation_007_t2.nii BraTS20_Validation_007_t1ce.nii BraTS20_Validation_007_flair.nii BraTS20_Validation_007_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_030 BraTS20_Validation_030_t1ce.nii BraTS20_Validation_030_t2.nii BraTS20_Validation_030_flair.nii BraTS20_Validation_030_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_080 BraTS20_Validation_080_t1ce.nii BraTS20_Validation_080_t2.nii BraTS20_Validation_080_flair.nii BraTS20_Validation_080_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_009 BraTS20_Validation_009_t1.nii BraTS20_Validation_009_t1ce.nii BraTS20_Validation_009_t2.nii BraTS20_Validation_009_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_104 BraTS20_Validation_104_t1ce.nii BraTS20_Validation_104_t2.nii BraTS20_Validation_104_t1.nii BraTS20_Validation_104_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_086 BraTS20_Validation_086_flair.nii BraTS20_Validation_086_t1.nii BraTS20_Validation_086_t1ce.nii BraTS20_Validation_086_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_013 BraTS20_Validation_013_t1ce.nii BraTS20_Validation_013_t2.nii BraTS20_Validation_013_flair.nii BraTS20_Validation_013_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_048 BraTS20_Validation_048_flair.nii BraTS20_Validation_048_t2.nii BraTS20_Validation_048_t1.nii BraTS20_Validation_048_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_039 BraTS20_Validation_039_flair.nii BraTS20_Validation_039_t2.nii BraTS20_Validation_039_t1.nii BraTS20_Validation_039_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_083 BraTS20_Validation_083_t2.nii BraTS20_Validation_083_t1.nii BraTS20_Validation_083_flair.nii BraTS20_Validation_083_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_023 BraTS20_Validation_023_t1.nii BraTS20_Validation_023_flair.nii BraTS20_Validation_023_t1ce.nii BraTS20_Validation_023_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_107 BraTS20_Validation_107_flair.nii BraTS20_Validation_107_t1ce.nii BraTS20_Validation_107_t2.nii BraTS20_Validation_107_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_099 BraTS20_Validation_099_flair.nii BraTS20_Validation_099_t1ce.nii BraTS20_Validation_099_t1.nii BraTS20_Validation_099_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_075 BraTS20_Validation_075_t1ce.nii BraTS20_Validation_075_t1.nii BraTS20_Validation_075_flair.nii BraTS20_Validation_075_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_041 BraTS20_Validation_041_t1.nii BraTS20_Validation_041_t1ce.nii BraTS20_Validation_041_t2.nii BraTS20_Validation_041_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_114 BraTS20_Validation_114_t2.nii BraTS20_Validation_114_t1.nii BraTS20_Validation_114_t1ce.nii BraTS20_Validation_114_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_032 BraTS20_Validation_032_t1ce.nii BraTS20_Validation_032_t2.nii BraTS20_Validation_032_flair.nii BraTS20_Validation_032_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_052 BraTS20_Validation_052_t1ce.nii BraTS20_Validation_052_flair.nii BraTS20_Validation_052_t1.nii BraTS20_Validation_052_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_029 BraTS20_Validation_029_t2.nii BraTS20_Validation_029_flair.nii BraTS20_Validation_029_t1.nii BraTS20_Validation_029_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_001 BraTS20_Validation_001_t2.nii BraTS20_Validation_001_t1.nii BraTS20_Validation_001_t1ce.nii BraTS20_Validation_001_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_122 BraTS20_Validation_122_flair.nii BraTS20_Validation_122_t2.nii BraTS20_Validation_122_t1.nii BraTS20_Validation_122_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_088 BraTS20_Validation_088_t1.nii BraTS20_Validation_088_flair.nii BraTS20_Validation_088_t2.nii BraTS20_Validation_088_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_093 BraTS20_Validation_093_t1ce.nii BraTS20_Validation_093_t1.nii BraTS20_Validation_093_t2.nii BraTS20_Validation_093_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_024 BraTS20_Validation_024_t2.nii BraTS20_Validation_024_t1ce.nii BraTS20_Validation_024_t1.nii BraTS20_Validation_024_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_087 BraTS20_Validation_087_flair.nii BraTS20_Validation_087_t1ce.nii BraTS20_Validation_087_t1.nii BraTS20_Validation_087_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_067 BraTS20_Validation_067_flair.nii BraTS20_Validation_067_t1ce.nii BraTS20_Validation_067_t2.nii BraTS20_Validation_067_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_113 BraTS20_Validation_113_flair.nii BraTS20_Validation_113_t1.nii BraTS20_Validation_113_t1ce.nii BraTS20_Validation_113_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_123 BraTS20_Validation_123_flair.nii BraTS20_Validation_123_t1.nii BraTS20_Validation_123_t1ce.nii BraTS20_Validation_123_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_125 BraTS20_Validation_125_t1ce.nii BraTS20_Validation_125_flair.nii BraTS20_Validation_125_t2.nii BraTS20_Validation_125_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_120 BraTS20_Validation_120_t1ce.nii BraTS20_Validation_120_flair.nii BraTS20_Validation_120_t2.nii BraTS20_Validation_120_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_077 BraTS20_Validation_077_t1.nii BraTS20_Validation_077_t1ce.nii BraTS20_Validation_077_flair.nii BraTS20_Validation_077_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData name_mapping.csv survival_info.csv Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_083 BraTS20_Training_083_flair.nii BraTS20_Training_083_t1.nii BraTS20_Training_083_seg.nii BraTS20_Training_083_t2.nii BraTS20_Training_083_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_337 BraTS20_Training_337_t1ce.nii BraTS20_Training_337_t1.nii BraTS20_Training_337_seg.nii BraTS20_Training_337_t2.nii BraTS20_Training_337_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_161 BraTS20_Training_161_t1ce.nii BraTS20_Training_161_t2.nii BraTS20_Training_161_t1.nii BraTS20_Training_161_seg.nii BraTS20_Training_161_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_198 BraTS20_Training_198_t1.nii BraTS20_Training_198_flair.nii BraTS20_Training_198_t2.nii BraTS20_Training_198_seg.nii BraTS20_Training_198_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_284 BraTS20_Training_284_flair.nii BraTS20_Training_284_seg.nii BraTS20_Training_284_t2.nii BraTS20_Training_284_t1.nii BraTS20_Training_284_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_169 BraTS20_Training_169_flair.nii BraTS20_Training_169_t1.nii BraTS20_Training_169_t1ce.nii BraTS20_Training_169_t2.nii BraTS20_Training_169_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_157 BraTS20_Training_157_t1.nii BraTS20_Training_157_seg.nii BraTS20_Training_157_flair.nii BraTS20_Training_157_t1ce.nii BraTS20_Training_157_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_073 BraTS20_Training_073_seg.nii BraTS20_Training_073_t2.nii BraTS20_Training_073_flair.nii BraTS20_Training_073_t1ce.nii BraTS20_Training_073_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_253 BraTS20_Training_253_flair.nii BraTS20_Training_253_t1ce.nii BraTS20_Training_253_t1.nii BraTS20_Training_253_seg.nii BraTS20_Training_253_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_026 BraTS20_Training_026_seg.nii BraTS20_Training_026_t1ce.nii BraTS20_Training_026_flair.nii BraTS20_Training_026_t2.nii BraTS20_Training_026_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_100 BraTS20_Training_100_flair.nii BraTS20_Training_100_t1ce.nii BraTS20_Training_100_t2.nii BraTS20_Training_100_t1.nii BraTS20_Training_100_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_107 BraTS20_Training_107_t2.nii BraTS20_Training_107_t1.nii BraTS20_Training_107_seg.nii BraTS20_Training_107_t1ce.nii BraTS20_Training_107_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_245 BraTS20_Training_245_t1.nii BraTS20_Training_245_seg.nii BraTS20_Training_245_flair.nii BraTS20_Training_245_t1ce.nii BraTS20_Training_245_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_358 BraTS20_Training_358_t1.nii BraTS20_Training_358_seg.nii BraTS20_Training_358_flair.nii BraTS20_Training_358_t1ce.nii BraTS20_Training_358_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_310 BraTS20_Training_310_seg.nii BraTS20_Training_310_flair.nii BraTS20_Training_310_t2.nii BraTS20_Training_310_t1ce.nii BraTS20_Training_310_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_205 BraTS20_Training_205_flair.nii BraTS20_Training_205_seg.nii BraTS20_Training_205_t1ce.nii BraTS20_Training_205_t2.nii BraTS20_Training_205_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_225 BraTS20_Training_225_t2.nii BraTS20_Training_225_t1ce.nii BraTS20_Training_225_t1.nii BraTS20_Training_225_flair.nii BraTS20_Training_225_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_320 BraTS20_Training_320_t2.nii BraTS20_Training_320_flair.nii BraTS20_Training_320_seg.nii BraTS20_Training_320_t1.nii BraTS20_Training_320_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_162 BraTS20_Training_162_t1.nii BraTS20_Training_162_seg.nii BraTS20_Training_162_flair.nii BraTS20_Training_162_t1ce.nii BraTS20_Training_162_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_108 BraTS20_Training_108_t1.nii BraTS20_Training_108_t1ce.nii BraTS20_Training_108_t2.nii BraTS20_Training_108_seg.nii BraTS20_Training_108_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_048 BraTS20_Training_048_t1.nii BraTS20_Training_048_flair.nii BraTS20_Training_048_t2.nii BraTS20_Training_048_seg.nii BraTS20_Training_048_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_218 BraTS20_Training_218_flair.nii BraTS20_Training_218_t1.nii BraTS20_Training_218_t1ce.nii BraTS20_Training_218_t2.nii BraTS20_Training_218_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_289 BraTS20_Training_289_t1.nii BraTS20_Training_289_t2.nii BraTS20_Training_289_t1ce.nii BraTS20_Training_289_flair.nii BraTS20_Training_289_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_045 BraTS20_Training_045_flair.nii BraTS20_Training_045_seg.nii BraTS20_Training_045_t1ce.nii BraTS20_Training_045_t2.nii BraTS20_Training_045_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_334 BraTS20_Training_334_t2.nii BraTS20_Training_334_flair.nii BraTS20_Training_334_t1.nii BraTS20_Training_334_seg.nii BraTS20_Training_334_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_054 BraTS20_Training_054_flair.nii BraTS20_Training_054_seg.nii BraTS20_Training_054_t1.nii BraTS20_Training_054_t1ce.nii BraTS20_Training_054_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_354 BraTS20_Training_354_t2.nii BraTS20_Training_354_t1.nii BraTS20_Training_354_t1ce.nii BraTS20_Training_354_seg.nii BraTS20_Training_354_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_243 BraTS20_Training_243_t2.nii BraTS20_Training_243_t1.nii BraTS20_Training_243_seg.nii BraTS20_Training_243_t1ce.nii BraTS20_Training_243_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_142 BraTS20_Training_142_seg.nii BraTS20_Training_142_t1.nii BraTS20_Training_142_t1ce.nii BraTS20_Training_142_flair.nii BraTS20_Training_142_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_179 BraTS20_Training_179_t1.nii BraTS20_Training_179_t1ce.nii BraTS20_Training_179_flair.nii BraTS20_Training_179_t2.nii BraTS20_Training_179_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_307 BraTS20_Training_307_flair.nii BraTS20_Training_307_t1.nii BraTS20_Training_307_t2.nii BraTS20_Training_307_t1ce.nii BraTS20_Training_307_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_070 BraTS20_Training_070_t1ce.nii BraTS20_Training_070_flair.nii BraTS20_Training_070_seg.nii BraTS20_Training_070_t1.nii BraTS20_Training_070_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_238 BraTS20_Training_238_t2.nii BraTS20_Training_238_seg.nii BraTS20_Training_238_t1ce.nii BraTS20_Training_238_t1.nii BraTS20_Training_238_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_146 BraTS20_Training_146_seg.nii BraTS20_Training_146_t2.nii BraTS20_Training_146_t1.nii BraTS20_Training_146_t1ce.nii BraTS20_Training_146_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_195 BraTS20_Training_195_t2.nii BraTS20_Training_195_flair.nii BraTS20_Training_195_t1ce.nii BraTS20_Training_195_seg.nii BraTS20_Training_195_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_060 BraTS20_Training_060_flair.nii BraTS20_Training_060_seg.nii BraTS20_Training_060_t2.nii BraTS20_Training_060_t1.nii BraTS20_Training_060_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_322 BraTS20_Training_322_t1.nii BraTS20_Training_322_t1ce.nii BraTS20_Training_322_t2.nii BraTS20_Training_322_seg.nii BraTS20_Training_322_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_303 BraTS20_Training_303_t1.nii BraTS20_Training_303_seg.nii BraTS20_Training_303_t2.nii BraTS20_Training_303_t1ce.nii BraTS20_Training_303_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_215 BraTS20_Training_215_t2.nii BraTS20_Training_215_seg.nii BraTS20_Training_215_flair.nii BraTS20_Training_215_t1.nii BraTS20_Training_215_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_031 BraTS20_Training_031_seg.nii BraTS20_Training_031_t1ce.nii BraTS20_Training_031_t1.nii BraTS20_Training_031_t2.nii BraTS20_Training_031_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_145 BraTS20_Training_145_flair.nii BraTS20_Training_145_t1ce.nii BraTS20_Training_145_t2.nii BraTS20_Training_145_seg.nii BraTS20_Training_145_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_166 BraTS20_Training_166_flair.nii BraTS20_Training_166_t1ce.nii BraTS20_Training_166_seg.nii BraTS20_Training_166_t2.nii BraTS20_Training_166_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_339 BraTS20_Training_339_t2.nii BraTS20_Training_339_seg.nii BraTS20_Training_339_t1ce.nii BraTS20_Training_339_t1.nii BraTS20_Training_339_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_342 BraTS20_Training_342_t2.nii BraTS20_Training_342_t1.nii BraTS20_Training_342_flair.nii BraTS20_Training_342_seg.nii BraTS20_Training_342_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_363 BraTS20_Training_363_flair.nii BraTS20_Training_363_seg.nii BraTS20_Training_363_t1ce.nii BraTS20_Training_363_t2.nii BraTS20_Training_363_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_350 BraTS20_Training_350_t1ce.nii BraTS20_Training_350_seg.nii BraTS20_Training_350_t1.nii BraTS20_Training_350_t2.nii BraTS20_Training_350_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_274 BraTS20_Training_274_t2.nii BraTS20_Training_274_t1ce.nii BraTS20_Training_274_flair.nii BraTS20_Training_274_t1.nii BraTS20_Training_274_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_257 BraTS20_Training_257_t1ce.nii BraTS20_Training_257_t1.nii BraTS20_Training_257_flair.nii BraTS20_Training_257_seg.nii BraTS20_Training_257_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_302 BraTS20_Training_302_flair.nii BraTS20_Training_302_t2.nii BraTS20_Training_302_seg.nii BraTS20_Training_302_t1ce.nii BraTS20_Training_302_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_258 BraTS20_Training_258_t1ce.nii BraTS20_Training_258_flair.nii BraTS20_Training_258_seg.nii BraTS20_Training_258_t2.nii BraTS20_Training_258_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_279 BraTS20_Training_279_t2.nii BraTS20_Training_279_t1ce.nii BraTS20_Training_279_t1.nii BraTS20_Training_279_flair.nii BraTS20_Training_279_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_114 BraTS20_Training_114_flair.nii BraTS20_Training_114_t1.nii BraTS20_Training_114_seg.nii BraTS20_Training_114_t1ce.nii BraTS20_Training_114_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_235 BraTS20_Training_235_t2.nii BraTS20_Training_235_seg.nii BraTS20_Training_235_t1.nii BraTS20_Training_235_t1ce.nii BraTS20_Training_235_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_331 BraTS20_Training_331_seg.nii BraTS20_Training_331_flair.nii BraTS20_Training_331_t2.nii BraTS20_Training_331_t1.nii BraTS20_Training_331_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_219 BraTS20_Training_219_seg.nii BraTS20_Training_219_t1.nii BraTS20_Training_219_flair.nii BraTS20_Training_219_t1ce.nii BraTS20_Training_219_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_316 BraTS20_Training_316_t2.nii BraTS20_Training_316_flair.nii BraTS20_Training_316_t1.nii BraTS20_Training_316_seg.nii BraTS20_Training_316_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_266 BraTS20_Training_266_t2.nii BraTS20_Training_266_t1ce.nii BraTS20_Training_266_t1.nii BraTS20_Training_266_seg.nii BraTS20_Training_266_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_004 BraTS20_Training_004_flair.nii BraTS20_Training_004_t2.nii BraTS20_Training_004_t1.nii BraTS20_Training_004_seg.nii BraTS20_Training_004_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_328 BraTS20_Training_328_seg.nii BraTS20_Training_328_flair.nii BraTS20_Training_328_t1.nii BraTS20_Training_328_t2.nii BraTS20_Training_328_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_368 BraTS20_Training_368_t1.nii BraTS20_Training_368_seg.nii BraTS20_Training_368_t1ce.nii BraTS20_Training_368_flair.nii BraTS20_Training_368_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_119 BraTS20_Training_119_t1.nii BraTS20_Training_119_t1ce.nii BraTS20_Training_119_flair.nii BraTS20_Training_119_seg.nii BraTS20_Training_119_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_364 BraTS20_Training_364_t1ce.nii BraTS20_Training_364_t1.nii BraTS20_Training_364_t2.nii BraTS20_Training_364_seg.nii BraTS20_Training_364_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_281 BraTS20_Training_281_flair.nii BraTS20_Training_281_t1ce.nii BraTS20_Training_281_t2.nii BraTS20_Training_281_seg.nii BraTS20_Training_281_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_227 BraTS20_Training_227_flair.nii BraTS20_Training_227_t2.nii BraTS20_Training_227_t1ce.nii BraTS20_Training_227_seg.nii BraTS20_Training_227_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_065 BraTS20_Training_065_seg.nii BraTS20_Training_065_t1ce.nii BraTS20_Training_065_t1.nii BraTS20_Training_065_flair.nii BraTS20_Training_065_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_127 BraTS20_Training_127_t1.nii BraTS20_Training_127_t2.nii BraTS20_Training_127_flair.nii BraTS20_Training_127_seg.nii BraTS20_Training_127_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_268 BraTS20_Training_268_seg.nii BraTS20_Training_268_t1.nii BraTS20_Training_268_t1ce.nii BraTS20_Training_268_flair.nii BraTS20_Training_268_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_273 BraTS20_Training_273_t1.nii BraTS20_Training_273_t1ce.nii BraTS20_Training_273_flair.nii BraTS20_Training_273_seg.nii BraTS20_Training_273_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_180 BraTS20_Training_180_t1ce.nii BraTS20_Training_180_t2.nii BraTS20_Training_180_seg.nii BraTS20_Training_180_t1.nii BraTS20_Training_180_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_292 BraTS20_Training_292_flair.nii BraTS20_Training_292_seg.nii BraTS20_Training_292_t1.nii BraTS20_Training_292_t1ce.nii BraTS20_Training_292_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_173 BraTS20_Training_173_seg.nii BraTS20_Training_173_t1.nii BraTS20_Training_173_flair.nii BraTS20_Training_173_t1ce.nii BraTS20_Training_173_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_207 BraTS20_Training_207_t2.nii BraTS20_Training_207_seg.nii BraTS20_Training_207_t1.nii BraTS20_Training_207_flair.nii BraTS20_Training_207_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_222 BraTS20_Training_222_seg.nii BraTS20_Training_222_t2.nii BraTS20_Training_222_t1ce.nii BraTS20_Training_222_flair.nii BraTS20_Training_222_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_034 BraTS20_Training_034_seg.nii BraTS20_Training_034_t1.nii BraTS20_Training_034_flair.nii BraTS20_Training_034_t1ce.nii BraTS20_Training_034_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_027 BraTS20_Training_027_flair.nii BraTS20_Training_027_seg.nii BraTS20_Training_027_t1ce.nii BraTS20_Training_027_t2.nii BraTS20_Training_027_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_010 BraTS20_Training_010_t1.nii BraTS20_Training_010_t2.nii BraTS20_Training_010_flair.nii BraTS20_Training_010_seg.nii BraTS20_Training_010_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_110 BraTS20_Training_110_t2.nii BraTS20_Training_110_t1ce.nii BraTS20_Training_110_seg.nii BraTS20_Training_110_flair.nii BraTS20_Training_110_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_244 BraTS20_Training_244_t2.nii BraTS20_Training_244_t1ce.nii BraTS20_Training_244_flair.nii BraTS20_Training_244_t1.nii BraTS20_Training_244_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_076 BraTS20_Training_076_t2.nii BraTS20_Training_076_seg.nii BraTS20_Training_076_flair.nii BraTS20_Training_076_t1ce.nii BraTS20_Training_076_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_141 BraTS20_Training_141_t2.nii BraTS20_Training_141_t1ce.nii BraTS20_Training_141_flair.nii BraTS20_Training_141_seg.nii BraTS20_Training_141_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_097 BraTS20_Training_097_t1ce.nii BraTS20_Training_097_t1.nii BraTS20_Training_097_flair.nii BraTS20_Training_097_t2.nii BraTS20_Training_097_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_158 BraTS20_Training_158_seg.nii BraTS20_Training_158_t1.nii BraTS20_Training_158_t1ce.nii BraTS20_Training_158_flair.nii BraTS20_Training_158_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_095 BraTS20_Training_095_seg.nii BraTS20_Training_095_t1ce.nii BraTS20_Training_095_flair.nii BraTS20_Training_095_t1.nii BraTS20_Training_095_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_361 BraTS20_Training_361_t2.nii BraTS20_Training_361_seg.nii BraTS20_Training_361_t1ce.nii BraTS20_Training_361_flair.nii BraTS20_Training_361_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_318 BraTS20_Training_318_t1ce.nii BraTS20_Training_318_t2.nii BraTS20_Training_318_flair.nii BraTS20_Training_318_seg.nii BraTS20_Training_318_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_324 BraTS20_Training_324_flair.nii BraTS20_Training_324_t2.nii BraTS20_Training_324_t1.nii BraTS20_Training_324_t1ce.nii BraTS20_Training_324_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_052 BraTS20_Training_052_t2.nii BraTS20_Training_052_t1.nii BraTS20_Training_052_flair.nii BraTS20_Training_052_seg.nii BraTS20_Training_052_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_263 BraTS20_Training_263_t2.nii BraTS20_Training_263_seg.nii BraTS20_Training_263_t1.nii BraTS20_Training_263_flair.nii BraTS20_Training_263_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_294 BraTS20_Training_294_t1.nii BraTS20_Training_294_t1ce.nii BraTS20_Training_294_flair.nii BraTS20_Training_294_seg.nii BraTS20_Training_294_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_124 BraTS20_Training_124_t1ce.nii BraTS20_Training_124_flair.nii BraTS20_Training_124_t1.nii BraTS20_Training_124_seg.nii BraTS20_Training_124_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_117 BraTS20_Training_117_flair.nii BraTS20_Training_117_t1.nii BraTS20_Training_117_seg.nii BraTS20_Training_117_t2.nii BraTS20_Training_117_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_365 BraTS20_Training_365_t1ce.nii BraTS20_Training_365_flair.nii BraTS20_Training_365_seg.nii BraTS20_Training_365_t2.nii BraTS20_Training_365_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_030 BraTS20_Training_030_seg.nii BraTS20_Training_030_t2.nii BraTS20_Training_030_t1.nii BraTS20_Training_030_t1ce.nii BraTS20_Training_030_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_299 BraTS20_Training_299_t1ce.nii BraTS20_Training_299_seg.nii BraTS20_Training_299_t2.nii BraTS20_Training_299_t1.nii BraTS20_Training_299_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_209 BraTS20_Training_209_seg.nii BraTS20_Training_209_t1.nii BraTS20_Training_209_t1ce.nii BraTS20_Training_209_flair.nii BraTS20_Training_209_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_080 BraTS20_Training_080_flair.nii BraTS20_Training_080_t1ce.nii BraTS20_Training_080_t2.nii BraTS20_Training_080_t1.nii BraTS20_Training_080_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_189 BraTS20_Training_189_t2.nii BraTS20_Training_189_t1.nii BraTS20_Training_189_t1ce.nii BraTS20_Training_189_seg.nii BraTS20_Training_189_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_314 BraTS20_Training_314_t2.nii BraTS20_Training_314_t1.nii BraTS20_Training_314_seg.nii BraTS20_Training_314_flair.nii BraTS20_Training_314_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_121 BraTS20_Training_121_t1ce.nii BraTS20_Training_121_flair.nii BraTS20_Training_121_t1.nii BraTS20_Training_121_t2.nii BraTS20_Training_121_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_046 BraTS20_Training_046_flair.nii BraTS20_Training_046_t2.nii BraTS20_Training_046_t1.nii BraTS20_Training_046_seg.nii BraTS20_Training_046_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_196 BraTS20_Training_196_t2.nii BraTS20_Training_196_t1ce.nii BraTS20_Training_196_t1.nii BraTS20_Training_196_seg.nii BraTS20_Training_196_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_153 BraTS20_Training_153_t1ce.nii BraTS20_Training_153_seg.nii BraTS20_Training_153_t2.nii BraTS20_Training_153_flair.nii BraTS20_Training_153_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_063 BraTS20_Training_063_t2.nii BraTS20_Training_063_t1ce.nii BraTS20_Training_063_t1.nii BraTS20_Training_063_flair.nii BraTS20_Training_063_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_210 BraTS20_Training_210_seg.nii BraTS20_Training_210_t2.nii BraTS20_Training_210_t1.nii BraTS20_Training_210_t1ce.nii BraTS20_Training_210_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_251 BraTS20_Training_251_t1ce.nii BraTS20_Training_251_t1.nii BraTS20_Training_251_flair.nii BraTS20_Training_251_t2.nii BraTS20_Training_251_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_154 BraTS20_Training_154_t1.nii BraTS20_Training_154_seg.nii BraTS20_Training_154_t2.nii BraTS20_Training_154_flair.nii BraTS20_Training_154_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_125 BraTS20_Training_125_seg.nii BraTS20_Training_125_t2.nii BraTS20_Training_125_t1.nii BraTS20_Training_125_flair.nii BraTS20_Training_125_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_359 BraTS20_Training_359_seg.nii BraTS20_Training_359_flair.nii BraTS20_Training_359_t2.nii BraTS20_Training_359_t1.nii BraTS20_Training_359_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_206 BraTS20_Training_206_flair.nii BraTS20_Training_206_t1ce.nii BraTS20_Training_206_t1.nii BraTS20_Training_206_t2.nii BraTS20_Training_206_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_185 BraTS20_Training_185_flair.nii BraTS20_Training_185_seg.nii BraTS20_Training_185_t1ce.nii BraTS20_Training_185_t1.nii BraTS20_Training_185_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_044 BraTS20_Training_044_flair.nii BraTS20_Training_044_t1.nii BraTS20_Training_044_seg.nii BraTS20_Training_044_t2.nii BraTS20_Training_044_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_016 BraTS20_Training_016_t2.nii BraTS20_Training_016_t1ce.nii BraTS20_Training_016_seg.nii BraTS20_Training_016_t1.nii BraTS20_Training_016_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_115 BraTS20_Training_115_t1ce.nii BraTS20_Training_115_seg.nii BraTS20_Training_115_t1.nii BraTS20_Training_115_flair.nii BraTS20_Training_115_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_357 BraTS20_Training_357_t1.nii BraTS20_Training_357_t1ce.nii BraTS20_Training_357_t2.nii BraTS20_Training_357_flair.nii BraTS20_Training_357_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_216 BraTS20_Training_216_seg.nii BraTS20_Training_216_t1.nii BraTS20_Training_216_flair.nii BraTS20_Training_216_t2.nii BraTS20_Training_216_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_341 BraTS20_Training_341_seg.nii BraTS20_Training_341_t2.nii BraTS20_Training_341_t1.nii BraTS20_Training_341_flair.nii BraTS20_Training_341_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_116 BraTS20_Training_116_seg.nii BraTS20_Training_116_t2.nii BraTS20_Training_116_flair.nii BraTS20_Training_116_t1.nii BraTS20_Training_116_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_230 BraTS20_Training_230_seg.nii BraTS20_Training_230_t1.nii BraTS20_Training_230_t2.nii BraTS20_Training_230_flair.nii BraTS20_Training_230_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_090 BraTS20_Training_090_t1.nii BraTS20_Training_090_flair.nii BraTS20_Training_090_t2.nii BraTS20_Training_090_t1ce.nii BraTS20_Training_090_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_106 BraTS20_Training_106_t1.nii BraTS20_Training_106_flair.nii BraTS20_Training_106_t2.nii BraTS20_Training_106_t1ce.nii BraTS20_Training_106_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_170 BraTS20_Training_170_seg.nii BraTS20_Training_170_t1.nii BraTS20_Training_170_t1ce.nii BraTS20_Training_170_t2.nii BraTS20_Training_170_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_309 BraTS20_Training_309_flair.nii BraTS20_Training_309_t1ce.nii BraTS20_Training_309_seg.nii BraTS20_Training_309_t1.nii BraTS20_Training_309_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_053 BraTS20_Training_053_seg.nii BraTS20_Training_053_flair.nii BraTS20_Training_053_t2.nii BraTS20_Training_053_t1.nii BraTS20_Training_053_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_272 BraTS20_Training_272_t2.nii BraTS20_Training_272_t1.nii BraTS20_Training_272_t1ce.nii BraTS20_Training_272_seg.nii BraTS20_Training_272_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_202 BraTS20_Training_202_flair.nii BraTS20_Training_202_t1.nii BraTS20_Training_202_seg.nii BraTS20_Training_202_t2.nii BraTS20_Training_202_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_330 BraTS20_Training_330_flair.nii BraTS20_Training_330_t2.nii BraTS20_Training_330_t1.nii BraTS20_Training_330_seg.nii BraTS20_Training_330_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_212 BraTS20_Training_212_t1ce.nii BraTS20_Training_212_t2.nii BraTS20_Training_212_seg.nii BraTS20_Training_212_t1.nii BraTS20_Training_212_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_122 BraTS20_Training_122_t2.nii BraTS20_Training_122_seg.nii BraTS20_Training_122_t1ce.nii BraTS20_Training_122_flair.nii BraTS20_Training_122_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_140 BraTS20_Training_140_seg.nii BraTS20_Training_140_t1ce.nii BraTS20_Training_140_t1.nii BraTS20_Training_140_t2.nii BraTS20_Training_140_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_105 BraTS20_Training_105_seg.nii BraTS20_Training_105_t1.nii BraTS20_Training_105_flair.nii BraTS20_Training_105_t2.nii BraTS20_Training_105_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_332 BraTS20_Training_332_t2.nii BraTS20_Training_332_t1.nii BraTS20_Training_332_t1ce.nii BraTS20_Training_332_flair.nii BraTS20_Training_332_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_011 BraTS20_Training_011_t2.nii BraTS20_Training_011_seg.nii BraTS20_Training_011_t1.nii BraTS20_Training_011_flair.nii BraTS20_Training_011_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_041 BraTS20_Training_041_t1.nii BraTS20_Training_041_t2.nii BraTS20_Training_041_t1ce.nii BraTS20_Training_041_flair.nii BraTS20_Training_041_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_138 BraTS20_Training_138_t1ce.nii BraTS20_Training_138_t2.nii BraTS20_Training_138_seg.nii BraTS20_Training_138_t1.nii BraTS20_Training_138_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_099 BraTS20_Training_099_t1.nii BraTS20_Training_099_t2.nii BraTS20_Training_099_flair.nii BraTS20_Training_099_seg.nii BraTS20_Training_099_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_152 BraTS20_Training_152_seg.nii BraTS20_Training_152_flair.nii BraTS20_Training_152_t1.nii BraTS20_Training_152_t2.nii BraTS20_Training_152_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_300 BraTS20_Training_300_t1.nii BraTS20_Training_300_flair.nii BraTS20_Training_300_t1ce.nii BraTS20_Training_300_seg.nii BraTS20_Training_300_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_252 BraTS20_Training_252_flair.nii BraTS20_Training_252_seg.nii BraTS20_Training_252_t1.nii BraTS20_Training_252_t1ce.nii BraTS20_Training_252_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_176 BraTS20_Training_176_t1.nii BraTS20_Training_176_flair.nii BraTS20_Training_176_t2.nii BraTS20_Training_176_t1ce.nii BraTS20_Training_176_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_040 BraTS20_Training_040_t2.nii BraTS20_Training_040_seg.nii BraTS20_Training_040_t1ce.nii BraTS20_Training_040_flair.nii BraTS20_Training_040_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_015 BraTS20_Training_015_t2.nii BraTS20_Training_015_t1.nii BraTS20_Training_015_seg.nii BraTS20_Training_015_flair.nii BraTS20_Training_015_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_213 BraTS20_Training_213_flair.nii BraTS20_Training_213_t1ce.nii BraTS20_Training_213_seg.nii BraTS20_Training_213_t1.nii BraTS20_Training_213_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_312 BraTS20_Training_312_t1.nii BraTS20_Training_312_seg.nii BraTS20_Training_312_t2.nii BraTS20_Training_312_flair.nii BraTS20_Training_312_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_005 BraTS20_Training_005_flair.nii BraTS20_Training_005_t1ce.nii BraTS20_Training_005_t1.nii BraTS20_Training_005_seg.nii BraTS20_Training_005_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_029 BraTS20_Training_029_t2.nii BraTS20_Training_029_seg.nii BraTS20_Training_029_t1.nii BraTS20_Training_029_flair.nii BraTS20_Training_029_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_271 BraTS20_Training_271_t1ce.nii BraTS20_Training_271_seg.nii BraTS20_Training_271_t2.nii BraTS20_Training_271_t1.nii BraTS20_Training_271_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_156 BraTS20_Training_156_t2.nii BraTS20_Training_156_t1ce.nii BraTS20_Training_156_seg.nii BraTS20_Training_156_flair.nii BraTS20_Training_156_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_275 BraTS20_Training_275_t1.nii BraTS20_Training_275_seg.nii BraTS20_Training_275_t2.nii BraTS20_Training_275_flair.nii BraTS20_Training_275_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_147 BraTS20_Training_147_seg.nii BraTS20_Training_147_t1.nii BraTS20_Training_147_t2.nii BraTS20_Training_147_t1ce.nii BraTS20_Training_147_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_113 BraTS20_Training_113_t2.nii BraTS20_Training_113_t1ce.nii BraTS20_Training_113_flair.nii BraTS20_Training_113_t1.nii BraTS20_Training_113_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_239 BraTS20_Training_239_t1ce.nii BraTS20_Training_239_t1.nii BraTS20_Training_239_seg.nii BraTS20_Training_239_t2.nii BraTS20_Training_239_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_329 BraTS20_Training_329_seg.nii BraTS20_Training_329_t1ce.nii BraTS20_Training_329_flair.nii BraTS20_Training_329_t1.nii BraTS20_Training_329_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_055 BraTS20_Training_055_seg.nii BraTS20_Training_055_t1.nii BraTS20_Training_055_t2.nii BraTS20_Training_055_t1ce.nii BraTS20_Training_055_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_136 BraTS20_Training_136_flair.nii BraTS20_Training_136_seg.nii BraTS20_Training_136_t1.nii BraTS20_Training_136_t2.nii BraTS20_Training_136_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_208 BraTS20_Training_208_t1ce.nii BraTS20_Training_208_t1.nii BraTS20_Training_208_seg.nii BraTS20_Training_208_t2.nii BraTS20_Training_208_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_056 BraTS20_Training_056_t2.nii BraTS20_Training_056_t1ce.nii BraTS20_Training_056_flair.nii BraTS20_Training_056_seg.nii BraTS20_Training_056_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_078 BraTS20_Training_078_seg.nii BraTS20_Training_078_t1.nii BraTS20_Training_078_flair.nii BraTS20_Training_078_t2.nii BraTS20_Training_078_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_001 BraTS20_Training_001_t2.nii BraTS20_Training_001_t1ce.nii BraTS20_Training_001_t1.nii BraTS20_Training_001_seg.nii BraTS20_Training_001_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_150 BraTS20_Training_150_flair.nii BraTS20_Training_150_t1ce.nii BraTS20_Training_150_t2.nii BraTS20_Training_150_seg.nii BraTS20_Training_150_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_133 BraTS20_Training_133_t1ce.nii BraTS20_Training_133_t1.nii BraTS20_Training_133_t2.nii BraTS20_Training_133_seg.nii BraTS20_Training_133_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_109 BraTS20_Training_109_flair.nii BraTS20_Training_109_t1.nii BraTS20_Training_109_seg.nii BraTS20_Training_109_t2.nii BraTS20_Training_109_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_249 BraTS20_Training_249_t1ce.nii BraTS20_Training_249_t1.nii BraTS20_Training_249_flair.nii BraTS20_Training_249_seg.nii BraTS20_Training_249_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_293 BraTS20_Training_293_seg.nii BraTS20_Training_293_t1ce.nii BraTS20_Training_293_flair.nii BraTS20_Training_293_t1.nii BraTS20_Training_293_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_311 BraTS20_Training_311_flair.nii BraTS20_Training_311_seg.nii BraTS20_Training_311_t1.nii BraTS20_Training_311_t2.nii BraTS20_Training_311_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_204 BraTS20_Training_204_t1.nii BraTS20_Training_204_t1ce.nii BraTS20_Training_204_seg.nii BraTS20_Training_204_flair.nii BraTS20_Training_204_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_081 BraTS20_Training_081_t1.nii BraTS20_Training_081_t1ce.nii BraTS20_Training_081_seg.nii BraTS20_Training_081_t2.nii BraTS20_Training_081_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_159 BraTS20_Training_159_t2.nii BraTS20_Training_159_t1ce.nii BraTS20_Training_159_flair.nii BraTS20_Training_159_t1.nii BraTS20_Training_159_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_220 BraTS20_Training_220_seg.nii BraTS20_Training_220_t2.nii BraTS20_Training_220_t1.nii BraTS20_Training_220_flair.nii BraTS20_Training_220_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_172 BraTS20_Training_172_flair.nii BraTS20_Training_172_t1ce.nii BraTS20_Training_172_seg.nii BraTS20_Training_172_t2.nii BraTS20_Training_172_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_287 BraTS20_Training_287_t1.nii BraTS20_Training_287_t2.nii BraTS20_Training_287_seg.nii BraTS20_Training_287_flair.nii BraTS20_Training_287_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_155 BraTS20_Training_155_flair.nii BraTS20_Training_155_t1.nii BraTS20_Training_155_t2.nii BraTS20_Training_155_seg.nii BraTS20_Training_155_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_182 BraTS20_Training_182_t1ce.nii BraTS20_Training_182_t2.nii BraTS20_Training_182_t1.nii BraTS20_Training_182_flair.nii BraTS20_Training_182_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_353 BraTS20_Training_353_t1.nii BraTS20_Training_353_seg.nii BraTS20_Training_353_t2.nii BraTS20_Training_353_t1ce.nii BraTS20_Training_353_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_321 BraTS20_Training_321_seg.nii BraTS20_Training_321_t2.nii BraTS20_Training_321_flair.nii BraTS20_Training_321_t1ce.nii BraTS20_Training_321_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_167 BraTS20_Training_167_t1.nii BraTS20_Training_167_flair.nii BraTS20_Training_167_t1ce.nii BraTS20_Training_167_t2.nii BraTS20_Training_167_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_086 BraTS20_Training_086_seg.nii BraTS20_Training_086_t2.nii BraTS20_Training_086_flair.nii BraTS20_Training_086_t1.nii BraTS20_Training_086_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_096 BraTS20_Training_096_t2.nii BraTS20_Training_096_flair.nii BraTS20_Training_096_t1.nii BraTS20_Training_096_seg.nii BraTS20_Training_096_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_064 BraTS20_Training_064_t1.nii BraTS20_Training_064_t2.nii BraTS20_Training_064_seg.nii BraTS20_Training_064_flair.nii BraTS20_Training_064_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_326 BraTS20_Training_326_t1ce.nii BraTS20_Training_326_t2.nii BraTS20_Training_326_seg.nii BraTS20_Training_326_flair.nii BraTS20_Training_326_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_079 BraTS20_Training_079_t2.nii BraTS20_Training_079_t1.nii BraTS20_Training_079_flair.nii BraTS20_Training_079_t1ce.nii BraTS20_Training_079_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_259 BraTS20_Training_259_t2.nii BraTS20_Training_259_t1.nii BraTS20_Training_259_t1ce.nii BraTS20_Training_259_flair.nii BraTS20_Training_259_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_092 BraTS20_Training_092_t2.nii BraTS20_Training_092_seg.nii BraTS20_Training_092_flair.nii BraTS20_Training_092_t1.nii BraTS20_Training_092_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_067 BraTS20_Training_067_t1ce.nii BraTS20_Training_067_seg.nii BraTS20_Training_067_t1.nii BraTS20_Training_067_flair.nii BraTS20_Training_067_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_234 BraTS20_Training_234_flair.nii BraTS20_Training_234_t1ce.nii BraTS20_Training_234_t1.nii BraTS20_Training_234_seg.nii BraTS20_Training_234_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_022 BraTS20_Training_022_t1ce.nii BraTS20_Training_022_t1.nii BraTS20_Training_022_flair.nii BraTS20_Training_022_t2.nii BraTS20_Training_022_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_075 BraTS20_Training_075_t1ce.nii BraTS20_Training_075_t1.nii BraTS20_Training_075_t2.nii BraTS20_Training_075_seg.nii BraTS20_Training_075_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_089 BraTS20_Training_089_t2.nii BraTS20_Training_089_t1.nii BraTS20_Training_089_seg.nii BraTS20_Training_089_t1ce.nii BraTS20_Training_089_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_254 BraTS20_Training_254_flair.nii BraTS20_Training_254_t1ce.nii BraTS20_Training_254_seg.nii BraTS20_Training_254_t1.nii BraTS20_Training_254_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_306 BraTS20_Training_306_t1ce.nii BraTS20_Training_306_t2.nii BraTS20_Training_306_t1.nii BraTS20_Training_306_seg.nii BraTS20_Training_306_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_214 BraTS20_Training_214_t2.nii BraTS20_Training_214_t1ce.nii BraTS20_Training_214_seg.nii BraTS20_Training_214_t1.nii BraTS20_Training_214_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_247 BraTS20_Training_247_flair.nii BraTS20_Training_247_t1ce.nii BraTS20_Training_247_t2.nii BraTS20_Training_247_seg.nii BraTS20_Training_247_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_163 BraTS20_Training_163_flair.nii BraTS20_Training_163_t1ce.nii BraTS20_Training_163_t1.nii BraTS20_Training_163_t2.nii BraTS20_Training_163_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_223 BraTS20_Training_223_t1.nii BraTS20_Training_223_seg.nii BraTS20_Training_223_t1ce.nii BraTS20_Training_223_t2.nii BraTS20_Training_223_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_295 BraTS20_Training_295_t2.nii BraTS20_Training_295_seg.nii BraTS20_Training_295_t1ce.nii BraTS20_Training_295_flair.nii BraTS20_Training_295_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_241 BraTS20_Training_241_t1.nii BraTS20_Training_241_flair.nii BraTS20_Training_241_t2.nii BraTS20_Training_241_t1ce.nii BraTS20_Training_241_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_033 BraTS20_Training_033_t1.nii BraTS20_Training_033_flair.nii BraTS20_Training_033_t1ce.nii BraTS20_Training_033_seg.nii BraTS20_Training_033_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_250 BraTS20_Training_250_flair.nii BraTS20_Training_250_t1.nii BraTS20_Training_250_seg.nii BraTS20_Training_250_t2.nii BraTS20_Training_250_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_282 BraTS20_Training_282_flair.nii BraTS20_Training_282_t1.nii BraTS20_Training_282_t1ce.nii BraTS20_Training_282_seg.nii BraTS20_Training_282_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_344 BraTS20_Training_344_t2.nii BraTS20_Training_344_t1ce.nii BraTS20_Training_344_t1.nii BraTS20_Training_344_seg.nii BraTS20_Training_344_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_102 BraTS20_Training_102_t1.nii BraTS20_Training_102_seg.nii BraTS20_Training_102_flair.nii BraTS20_Training_102_t1ce.nii BraTS20_Training_102_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_143 BraTS20_Training_143_seg.nii BraTS20_Training_143_flair.nii BraTS20_Training_143_t2.nii BraTS20_Training_143_t1ce.nii BraTS20_Training_143_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_058 BraTS20_Training_058_t1ce.nii BraTS20_Training_058_seg.nii BraTS20_Training_058_flair.nii BraTS20_Training_058_t1.nii BraTS20_Training_058_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_123 BraTS20_Training_123_t1ce.nii BraTS20_Training_123_seg.nii BraTS20_Training_123_flair.nii BraTS20_Training_123_t1.nii BraTS20_Training_123_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_286 BraTS20_Training_286_t1.nii BraTS20_Training_286_flair.nii BraTS20_Training_286_t2.nii BraTS20_Training_286_seg.nii BraTS20_Training_286_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_346 BraTS20_Training_346_t1.nii BraTS20_Training_346_flair.nii BraTS20_Training_346_seg.nii BraTS20_Training_346_t1ce.nii BraTS20_Training_346_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_093 BraTS20_Training_093_t1ce.nii BraTS20_Training_093_t2.nii BraTS20_Training_093_t1.nii BraTS20_Training_093_seg.nii BraTS20_Training_093_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_062 BraTS20_Training_062_t1ce.nii BraTS20_Training_062_t2.nii BraTS20_Training_062_flair.nii BraTS20_Training_062_t1.nii BraTS20_Training_062_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_333 BraTS20_Training_333_seg.nii BraTS20_Training_333_t1ce.nii BraTS20_Training_333_t2.nii BraTS20_Training_333_t1.nii BraTS20_Training_333_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_094 BraTS20_Training_094_seg.nii BraTS20_Training_094_t1.nii BraTS20_Training_094_flair.nii BraTS20_Training_094_t2.nii BraTS20_Training_094_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_037 BraTS20_Training_037_flair.nii BraTS20_Training_037_t2.nii BraTS20_Training_037_t1.nii BraTS20_Training_037_seg.nii BraTS20_Training_037_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_233 BraTS20_Training_233_t1ce.nii BraTS20_Training_233_t1.nii BraTS20_Training_233_seg.nii BraTS20_Training_233_flair.nii BraTS20_Training_233_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_351 BraTS20_Training_351_seg.nii BraTS20_Training_351_flair.nii BraTS20_Training_351_t1.nii BraTS20_Training_351_t1ce.nii BraTS20_Training_351_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_280 BraTS20_Training_280_t1ce.nii BraTS20_Training_280_t1.nii BraTS20_Training_280_flair.nii BraTS20_Training_280_t2.nii BraTS20_Training_280_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_035 BraTS20_Training_035_t2.nii BraTS20_Training_035_flair.nii BraTS20_Training_035_t1.nii BraTS20_Training_035_seg.nii BraTS20_Training_035_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_057 BraTS20_Training_057_flair.nii BraTS20_Training_057_seg.nii BraTS20_Training_057_t1ce.nii BraTS20_Training_057_t2.nii BraTS20_Training_057_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_228 BraTS20_Training_228_t1ce.nii BraTS20_Training_228_t2.nii BraTS20_Training_228_flair.nii BraTS20_Training_228_t1.nii BraTS20_Training_228_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_256 BraTS20_Training_256_t1.nii BraTS20_Training_256_seg.nii BraTS20_Training_256_t2.nii BraTS20_Training_256_t1ce.nii BraTS20_Training_256_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_188 BraTS20_Training_188_t1.nii BraTS20_Training_188_seg.nii BraTS20_Training_188_flair.nii BraTS20_Training_188_t2.nii BraTS20_Training_188_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_304 BraTS20_Training_304_flair.nii BraTS20_Training_304_t1ce.nii BraTS20_Training_304_t1.nii BraTS20_Training_304_t2.nii BraTS20_Training_304_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_003 BraTS20_Training_003_t1ce.nii BraTS20_Training_003_t1.nii BraTS20_Training_003_seg.nii BraTS20_Training_003_flair.nii BraTS20_Training_003_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_023 BraTS20_Training_023_t2.nii BraTS20_Training_023_t1.nii BraTS20_Training_023_t1ce.nii BraTS20_Training_023_flair.nii BraTS20_Training_023_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_248 BraTS20_Training_248_t2.nii BraTS20_Training_248_flair.nii BraTS20_Training_248_t1.nii BraTS20_Training_248_seg.nii BraTS20_Training_248_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_200 BraTS20_Training_200_t2.nii BraTS20_Training_200_seg.nii BraTS20_Training_200_t1.nii BraTS20_Training_200_flair.nii BraTS20_Training_200_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_184 BraTS20_Training_184_t1ce.nii BraTS20_Training_184_seg.nii BraTS20_Training_184_flair.nii BraTS20_Training_184_t1.nii BraTS20_Training_184_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_148 BraTS20_Training_148_seg.nii BraTS20_Training_148_t1ce.nii BraTS20_Training_148_t2.nii BraTS20_Training_148_t1.nii BraTS20_Training_148_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_043 BraTS20_Training_043_t2.nii BraTS20_Training_043_flair.nii BraTS20_Training_043_seg.nii BraTS20_Training_043_t1ce.nii BraTS20_Training_043_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_319 BraTS20_Training_319_t1ce.nii BraTS20_Training_319_t1.nii BraTS20_Training_319_seg.nii BraTS20_Training_319_flair.nii BraTS20_Training_319_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_038 BraTS20_Training_038_t1ce.nii BraTS20_Training_038_seg.nii BraTS20_Training_038_t1.nii BraTS20_Training_038_flair.nii BraTS20_Training_038_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_014 BraTS20_Training_014_flair.nii BraTS20_Training_014_seg.nii BraTS20_Training_014_t1ce.nii BraTS20_Training_014_t2.nii BraTS20_Training_014_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_267 BraTS20_Training_267_t1ce.nii BraTS20_Training_267_flair.nii BraTS20_Training_267_t1.nii BraTS20_Training_267_seg.nii BraTS20_Training_267_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_240 BraTS20_Training_240_t2.nii BraTS20_Training_240_flair.nii BraTS20_Training_240_t1ce.nii BraTS20_Training_240_t1.nii BraTS20_Training_240_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_101 BraTS20_Training_101_seg.nii BraTS20_Training_101_t1ce.nii BraTS20_Training_101_t1.nii BraTS20_Training_101_flair.nii BraTS20_Training_101_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_068 BraTS20_Training_068_t1.nii BraTS20_Training_068_seg.nii BraTS20_Training_068_flair.nii BraTS20_Training_068_t1ce.nii BraTS20_Training_068_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_347 BraTS20_Training_347_seg.nii BraTS20_Training_347_flair.nii BraTS20_Training_347_t1ce.nii BraTS20_Training_347_t2.nii BraTS20_Training_347_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_343 BraTS20_Training_343_flair.nii BraTS20_Training_343_t2.nii BraTS20_Training_343_seg.nii BraTS20_Training_343_t1ce.nii BraTS20_Training_343_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_175 BraTS20_Training_175_t2.nii BraTS20_Training_175_flair.nii BraTS20_Training_175_t1ce.nii BraTS20_Training_175_seg.nii BraTS20_Training_175_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_174 BraTS20_Training_174_t1.nii BraTS20_Training_174_flair.nii BraTS20_Training_174_t2.nii BraTS20_Training_174_seg.nii BraTS20_Training_174_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_336 BraTS20_Training_336_seg.nii BraTS20_Training_336_flair.nii BraTS20_Training_336_t1ce.nii BraTS20_Training_336_t1.nii BraTS20_Training_336_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_192 BraTS20_Training_192_t2.nii BraTS20_Training_192_flair.nii BraTS20_Training_192_seg.nii BraTS20_Training_192_t1ce.nii BraTS20_Training_192_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_012 BraTS20_Training_012_t2.nii BraTS20_Training_012_flair.nii BraTS20_Training_012_t1ce.nii BraTS20_Training_012_t1.nii BraTS20_Training_012_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_366 BraTS20_Training_366_t1.nii BraTS20_Training_366_t1ce.nii BraTS20_Training_366_flair.nii BraTS20_Training_366_t2.nii BraTS20_Training_366_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_315 BraTS20_Training_315_t1ce.nii BraTS20_Training_315_seg.nii BraTS20_Training_315_flair.nii BraTS20_Training_315_t2.nii BraTS20_Training_315_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_229 BraTS20_Training_229_t1ce.nii BraTS20_Training_229_t1.nii BraTS20_Training_229_seg.nii BraTS20_Training_229_flair.nii BraTS20_Training_229_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_104 BraTS20_Training_104_t1ce.nii BraTS20_Training_104_t2.nii BraTS20_Training_104_seg.nii BraTS20_Training_104_flair.nii BraTS20_Training_104_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_032 BraTS20_Training_032_t2.nii BraTS20_Training_032_t1ce.nii BraTS20_Training_032_flair.nii BraTS20_Training_032_t1.nii BraTS20_Training_032_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_305 BraTS20_Training_305_flair.nii BraTS20_Training_305_t1ce.nii BraTS20_Training_305_seg.nii BraTS20_Training_305_t2.nii BraTS20_Training_305_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_025 BraTS20_Training_025_t1ce.nii BraTS20_Training_025_flair.nii BraTS20_Training_025_seg.nii BraTS20_Training_025_t2.nii BraTS20_Training_025_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_071 BraTS20_Training_071_t1.nii BraTS20_Training_071_seg.nii BraTS20_Training_071_flair.nii BraTS20_Training_071_t1ce.nii BraTS20_Training_071_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_335 BraTS20_Training_335_t2.nii BraTS20_Training_335_flair.nii BraTS20_Training_335_seg.nii BraTS20_Training_335_t1.nii BraTS20_Training_335_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_132 BraTS20_Training_132_seg.nii BraTS20_Training_132_t2.nii BraTS20_Training_132_flair.nii BraTS20_Training_132_t1.nii BraTS20_Training_132_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_066 BraTS20_Training_066_t1ce.nii BraTS20_Training_066_t2.nii BraTS20_Training_066_t1.nii BraTS20_Training_066_seg.nii BraTS20_Training_066_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_194 BraTS20_Training_194_flair.nii BraTS20_Training_194_t1ce.nii BraTS20_Training_194_t2.nii BraTS20_Training_194_seg.nii BraTS20_Training_194_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_036 BraTS20_Training_036_t1.nii BraTS20_Training_036_t2.nii BraTS20_Training_036_t1ce.nii BraTS20_Training_036_seg.nii BraTS20_Training_036_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_349 BraTS20_Training_349_t2.nii BraTS20_Training_349_t1.nii BraTS20_Training_349_seg.nii BraTS20_Training_349_t1ce.nii BraTS20_Training_349_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_084 BraTS20_Training_084_t1.nii BraTS20_Training_084_seg.nii BraTS20_Training_084_t2.nii BraTS20_Training_084_flair.nii BraTS20_Training_084_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_002 BraTS20_Training_002_flair.nii BraTS20_Training_002_seg.nii BraTS20_Training_002_t1ce.nii BraTS20_Training_002_t2.nii BraTS20_Training_002_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_211 BraTS20_Training_211_t1ce.nii BraTS20_Training_211_seg.nii BraTS20_Training_211_t1.nii BraTS20_Training_211_t2.nii BraTS20_Training_211_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_203 BraTS20_Training_203_flair.nii BraTS20_Training_203_t2.nii BraTS20_Training_203_seg.nii BraTS20_Training_203_t1ce.nii BraTS20_Training_203_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_345 BraTS20_Training_345_seg.nii BraTS20_Training_345_t2.nii BraTS20_Training_345_t1ce.nii BraTS20_Training_345_flair.nii BraTS20_Training_345_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_128 BraTS20_Training_128_flair.nii BraTS20_Training_128_seg.nii BraTS20_Training_128_t1.nii BraTS20_Training_128_t1ce.nii BraTS20_Training_128_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_074 BraTS20_Training_074_t2.nii BraTS20_Training_074_t1ce.nii BraTS20_Training_074_seg.nii BraTS20_Training_074_t1.nii BraTS20_Training_074_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_201 BraTS20_Training_201_flair.nii BraTS20_Training_201_t1ce.nii BraTS20_Training_201_seg.nii BraTS20_Training_201_t1.nii BraTS20_Training_201_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_193 BraTS20_Training_193_seg.nii BraTS20_Training_193_t2.nii BraTS20_Training_193_flair.nii BraTS20_Training_193_t1.nii BraTS20_Training_193_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_061 BraTS20_Training_061_seg.nii BraTS20_Training_061_flair.nii BraTS20_Training_061_t2.nii BraTS20_Training_061_t1.nii BraTS20_Training_061_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_352 BraTS20_Training_352_seg.nii BraTS20_Training_352_t1ce.nii BraTS20_Training_352_t1.nii BraTS20_Training_352_t2.nii BraTS20_Training_352_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_088 BraTS20_Training_088_flair.nii BraTS20_Training_088_t1ce.nii BraTS20_Training_088_seg.nii BraTS20_Training_088_t1.nii BraTS20_Training_088_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_098 BraTS20_Training_098_t2.nii BraTS20_Training_098_seg.nii BraTS20_Training_098_t1.nii BraTS20_Training_098_t1ce.nii BraTS20_Training_098_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_367 BraTS20_Training_367_t1.nii BraTS20_Training_367_flair.nii BraTS20_Training_367_t2.nii BraTS20_Training_367_seg.nii BraTS20_Training_367_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_242 BraTS20_Training_242_t1.nii BraTS20_Training_242_flair.nii BraTS20_Training_242_t2.nii BraTS20_Training_242_t1ce.nii BraTS20_Training_242_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_129 BraTS20_Training_129_t1ce.nii BraTS20_Training_129_t1.nii BraTS20_Training_129_t2.nii BraTS20_Training_129_flair.nii BraTS20_Training_129_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_226 BraTS20_Training_226_t2.nii BraTS20_Training_226_t1ce.nii BraTS20_Training_226_t1.nii BraTS20_Training_226_flair.nii BraTS20_Training_226_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_137 BraTS20_Training_137_flair.nii BraTS20_Training_137_seg.nii BraTS20_Training_137_t1ce.nii BraTS20_Training_137_t1.nii BraTS20_Training_137_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_186 BraTS20_Training_186_t1.nii BraTS20_Training_186_seg.nii BraTS20_Training_186_t2.nii BraTS20_Training_186_t1ce.nii BraTS20_Training_186_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_160 BraTS20_Training_160_flair.nii BraTS20_Training_160_t1ce.nii BraTS20_Training_160_t2.nii BraTS20_Training_160_t1.nii BraTS20_Training_160_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_199 BraTS20_Training_199_flair.nii BraTS20_Training_199_t1ce.nii BraTS20_Training_199_t1.nii BraTS20_Training_199_t2.nii BraTS20_Training_199_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_183 BraTS20_Training_183_t1ce.nii BraTS20_Training_183_t1.nii BraTS20_Training_183_t2.nii BraTS20_Training_183_seg.nii BraTS20_Training_183_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_262 BraTS20_Training_262_seg.nii BraTS20_Training_262_t2.nii BraTS20_Training_262_t1.nii BraTS20_Training_262_t1ce.nii BraTS20_Training_262_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_298 BraTS20_Training_298_t1.nii BraTS20_Training_298_seg.nii BraTS20_Training_298_t1ce.nii BraTS20_Training_298_t2.nii BraTS20_Training_298_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_232 BraTS20_Training_232_t1ce.nii BraTS20_Training_232_seg.nii BraTS20_Training_232_t1.nii BraTS20_Training_232_t2.nii BraTS20_Training_232_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_276 BraTS20_Training_276_flair.nii BraTS20_Training_276_t1ce.nii BraTS20_Training_276_t2.nii BraTS20_Training_276_t1.nii BraTS20_Training_276_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_171 BraTS20_Training_171_t2.nii BraTS20_Training_171_seg.nii BraTS20_Training_171_t1.nii BraTS20_Training_171_flair.nii BraTS20_Training_171_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_261 BraTS20_Training_261_seg.nii BraTS20_Training_261_t2.nii BraTS20_Training_261_t1ce.nii BraTS20_Training_261_flair.nii BraTS20_Training_261_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_187 BraTS20_Training_187_t1ce.nii BraTS20_Training_187_t2.nii BraTS20_Training_187_t1.nii BraTS20_Training_187_flair.nii BraTS20_Training_187_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_021 BraTS20_Training_021_t1.nii BraTS20_Training_021_seg.nii BraTS20_Training_021_flair.nii BraTS20_Training_021_t1ce.nii BraTS20_Training_021_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_362 BraTS20_Training_362_flair.nii BraTS20_Training_362_seg.nii BraTS20_Training_362_t1.nii BraTS20_Training_362_t2.nii BraTS20_Training_362_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_360 BraTS20_Training_360_flair.nii BraTS20_Training_360_t1ce.nii BraTS20_Training_360_t2.nii BraTS20_Training_360_seg.nii BraTS20_Training_360_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_103 BraTS20_Training_103_t2.nii BraTS20_Training_103_t1.nii BraTS20_Training_103_seg.nii BraTS20_Training_103_flair.nii BraTS20_Training_103_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_069 BraTS20_Training_069_t1ce.nii BraTS20_Training_069_seg.nii BraTS20_Training_069_t1.nii BraTS20_Training_069_t2.nii BraTS20_Training_069_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_047 BraTS20_Training_047_t1.nii BraTS20_Training_047_t1ce.nii BraTS20_Training_047_flair.nii BraTS20_Training_047_t2.nii BraTS20_Training_047_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_168 BraTS20_Training_168_t2.nii BraTS20_Training_168_seg.nii BraTS20_Training_168_t1ce.nii BraTS20_Training_168_flair.nii BraTS20_Training_168_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_301 BraTS20_Training_301_flair.nii BraTS20_Training_301_t1ce.nii BraTS20_Training_301_t1.nii BraTS20_Training_301_seg.nii BraTS20_Training_301_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_265 BraTS20_Training_265_seg.nii BraTS20_Training_265_t1ce.nii BraTS20_Training_265_flair.nii BraTS20_Training_265_t1.nii BraTS20_Training_265_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_130 BraTS20_Training_130_seg.nii BraTS20_Training_130_t1ce.nii BraTS20_Training_130_flair.nii BraTS20_Training_130_t2.nii BraTS20_Training_130_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_338 BraTS20_Training_338_t2.nii BraTS20_Training_338_t1ce.nii BraTS20_Training_338_seg.nii BraTS20_Training_338_flair.nii BraTS20_Training_338_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_264 BraTS20_Training_264_t2.nii BraTS20_Training_264_t1ce.nii BraTS20_Training_264_t1.nii BraTS20_Training_264_seg.nii BraTS20_Training_264_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_237 BraTS20_Training_237_flair.nii BraTS20_Training_237_t1.nii BraTS20_Training_237_t2.nii BraTS20_Training_237_seg.nii BraTS20_Training_237_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_221 BraTS20_Training_221_t1.nii BraTS20_Training_221_flair.nii BraTS20_Training_221_t1ce.nii BraTS20_Training_221_t2.nii BraTS20_Training_221_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_049 BraTS20_Training_049_t1.nii BraTS20_Training_049_seg.nii BraTS20_Training_049_t2.nii BraTS20_Training_049_t1ce.nii BraTS20_Training_049_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_191 BraTS20_Training_191_flair.nii BraTS20_Training_191_seg.nii BraTS20_Training_191_t1ce.nii BraTS20_Training_191_t2.nii BraTS20_Training_191_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_296 BraTS20_Training_296_flair.nii BraTS20_Training_296_seg.nii BraTS20_Training_296_t1ce.nii BraTS20_Training_296_t1.nii BraTS20_Training_296_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_323 BraTS20_Training_323_t2.nii BraTS20_Training_323_flair.nii BraTS20_Training_323_t1ce.nii BraTS20_Training_323_t1.nii BraTS20_Training_323_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_059 BraTS20_Training_059_flair.nii BraTS20_Training_059_seg.nii BraTS20_Training_059_t1ce.nii BraTS20_Training_059_t2.nii BraTS20_Training_059_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_111 BraTS20_Training_111_t2.nii BraTS20_Training_111_seg.nii BraTS20_Training_111_t1ce.nii BraTS20_Training_111_flair.nii BraTS20_Training_111_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_077 BraTS20_Training_077_flair.nii BraTS20_Training_077_t1.nii BraTS20_Training_077_t1ce.nii BraTS20_Training_077_t2.nii BraTS20_Training_077_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_020 BraTS20_Training_020_seg.nii BraTS20_Training_020_t1.nii BraTS20_Training_020_t2.nii BraTS20_Training_020_t1ce.nii BraTS20_Training_020_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_085 BraTS20_Training_085_t1.nii BraTS20_Training_085_t2.nii BraTS20_Training_085_flair.nii BraTS20_Training_085_t1ce.nii BraTS20_Training_085_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_008 BraTS20_Training_008_flair.nii BraTS20_Training_008_seg.nii BraTS20_Training_008_t1.nii BraTS20_Training_008_t1ce.nii BraTS20_Training_008_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_134 BraTS20_Training_134_t1ce.nii BraTS20_Training_134_t2.nii BraTS20_Training_134_seg.nii BraTS20_Training_134_t1.nii BraTS20_Training_134_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_018 BraTS20_Training_018_t1.nii BraTS20_Training_018_t1ce.nii BraTS20_Training_018_t2.nii BraTS20_Training_018_flair.nii BraTS20_Training_018_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_278 BraTS20_Training_278_t1ce.nii BraTS20_Training_278_t2.nii BraTS20_Training_278_flair.nii BraTS20_Training_278_seg.nii BraTS20_Training_278_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_291 BraTS20_Training_291_seg.nii BraTS20_Training_291_t2.nii BraTS20_Training_291_t1.nii BraTS20_Training_291_t1ce.nii BraTS20_Training_291_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_164 BraTS20_Training_164_t1ce.nii BraTS20_Training_164_seg.nii BraTS20_Training_164_flair.nii BraTS20_Training_164_t2.nii BraTS20_Training_164_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_007 BraTS20_Training_007_t1ce.nii BraTS20_Training_007_seg.nii BraTS20_Training_007_t1.nii BraTS20_Training_007_t2.nii BraTS20_Training_007_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_013 BraTS20_Training_013_t2.nii BraTS20_Training_013_t1.nii BraTS20_Training_013_seg.nii BraTS20_Training_013_flair.nii BraTS20_Training_013_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_348 BraTS20_Training_348_seg.nii BraTS20_Training_348_t1ce.nii BraTS20_Training_348_t2.nii BraTS20_Training_348_flair.nii BraTS20_Training_348_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_024 BraTS20_Training_024_t2.nii BraTS20_Training_024_seg.nii BraTS20_Training_024_flair.nii BraTS20_Training_024_t1ce.nii BraTS20_Training_024_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_087 BraTS20_Training_087_t1ce.nii BraTS20_Training_087_t1.nii BraTS20_Training_087_t2.nii BraTS20_Training_087_seg.nii BraTS20_Training_087_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_151 BraTS20_Training_151_t1ce.nii BraTS20_Training_151_seg.nii BraTS20_Training_151_t1.nii BraTS20_Training_151_t2.nii BraTS20_Training_151_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_051 BraTS20_Training_051_t2.nii BraTS20_Training_051_seg.nii BraTS20_Training_051_t1.nii BraTS20_Training_051_flair.nii BraTS20_Training_051_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_224 BraTS20_Training_224_seg.nii BraTS20_Training_224_t2.nii BraTS20_Training_224_t1ce.nii BraTS20_Training_224_flair.nii BraTS20_Training_224_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_288 BraTS20_Training_288_t1.nii BraTS20_Training_288_t2.nii BraTS20_Training_288_flair.nii BraTS20_Training_288_t1ce.nii BraTS20_Training_288_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_082 BraTS20_Training_082_t2.nii BraTS20_Training_082_seg.nii BraTS20_Training_082_flair.nii BraTS20_Training_082_t1ce.nii BraTS20_Training_082_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_190 BraTS20_Training_190_seg.nii BraTS20_Training_190_t2.nii BraTS20_Training_190_flair.nii BraTS20_Training_190_t1ce.nii BraTS20_Training_190_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_019 BraTS20_Training_019_flair.nii BraTS20_Training_019_t2.nii BraTS20_Training_019_seg.nii BraTS20_Training_019_t1ce.nii BraTS20_Training_019_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_236 BraTS20_Training_236_t1ce.nii BraTS20_Training_236_flair.nii BraTS20_Training_236_seg.nii BraTS20_Training_236_t1.nii BraTS20_Training_236_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_325 BraTS20_Training_325_t1.nii BraTS20_Training_325_t2.nii BraTS20_Training_325_flair.nii BraTS20_Training_325_t1ce.nii BraTS20_Training_325_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_231 BraTS20_Training_231_t2.nii BraTS20_Training_231_t1.nii BraTS20_Training_231_flair.nii BraTS20_Training_231_t1ce.nii BraTS20_Training_231_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_009 BraTS20_Training_009_t2.nii BraTS20_Training_009_seg.nii BraTS20_Training_009_t1ce.nii BraTS20_Training_009_t1.nii BraTS20_Training_009_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_369 BraTS20_Training_369_flair.nii BraTS20_Training_369_t2.nii BraTS20_Training_369_t1.nii BraTS20_Training_369_seg.nii BraTS20_Training_369_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_270 BraTS20_Training_270_t1.nii BraTS20_Training_270_t2.nii BraTS20_Training_270_seg.nii BraTS20_Training_270_t1ce.nii BraTS20_Training_270_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_039 BraTS20_Training_039_t1ce.nii BraTS20_Training_039_seg.nii BraTS20_Training_039_t2.nii BraTS20_Training_039_t1.nii BraTS20_Training_039_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_327 BraTS20_Training_327_seg.nii BraTS20_Training_327_t1ce.nii BraTS20_Training_327_t1.nii BraTS20_Training_327_t2.nii BraTS20_Training_327_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_308 BraTS20_Training_308_seg.nii BraTS20_Training_308_t2.nii BraTS20_Training_308_t1.nii BraTS20_Training_308_flair.nii BraTS20_Training_308_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_131 BraTS20_Training_131_seg.nii BraTS20_Training_131_t1.nii BraTS20_Training_131_t2.nii BraTS20_Training_131_flair.nii BraTS20_Training_131_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_340 BraTS20_Training_340_t2.nii BraTS20_Training_340_flair.nii BraTS20_Training_340_t1ce.nii BraTS20_Training_340_seg.nii BraTS20_Training_340_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_135 BraTS20_Training_135_t2.nii BraTS20_Training_135_seg.nii BraTS20_Training_135_t1.nii BraTS20_Training_135_flair.nii BraTS20_Training_135_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_091 BraTS20_Training_091_flair.nii BraTS20_Training_091_t1ce.nii BraTS20_Training_091_t1.nii BraTS20_Training_091_t2.nii BraTS20_Training_091_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_165 BraTS20_Training_165_t2.nii BraTS20_Training_165_t1.nii BraTS20_Training_165_flair.nii BraTS20_Training_165_seg.nii BraTS20_Training_165_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_217 BraTS20_Training_217_t2.nii BraTS20_Training_217_t1ce.nii BraTS20_Training_217_flair.nii BraTS20_Training_217_seg.nii BraTS20_Training_217_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_120 BraTS20_Training_120_t1ce.nii BraTS20_Training_120_seg.nii BraTS20_Training_120_t2.nii BraTS20_Training_120_t1.nii BraTS20_Training_120_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_139 BraTS20_Training_139_t2.nii BraTS20_Training_139_t1.nii BraTS20_Training_139_seg.nii BraTS20_Training_139_flair.nii BraTS20_Training_139_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_277 BraTS20_Training_277_t1ce.nii BraTS20_Training_277_t1.nii BraTS20_Training_277_flair.nii BraTS20_Training_277_t2.nii BraTS20_Training_277_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_356 BraTS20_Training_356_t1.nii BraTS20_Training_356_t2.nii BraTS20_Training_356_flair.nii BraTS20_Training_356_t1ce.nii BraTS20_Training_356_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_269 BraTS20_Training_269_t1.nii BraTS20_Training_269_flair.nii BraTS20_Training_269_t2.nii BraTS20_Training_269_t1ce.nii BraTS20_Training_269_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_006 BraTS20_Training_006_t2.nii BraTS20_Training_006_t1.nii BraTS20_Training_006_t1ce.nii BraTS20_Training_006_flair.nii BraTS20_Training_006_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_028 BraTS20_Training_028_t1.nii BraTS20_Training_028_seg.nii BraTS20_Training_028_t2.nii BraTS20_Training_028_t1ce.nii BraTS20_Training_028_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_017 BraTS20_Training_017_flair.nii BraTS20_Training_017_seg.nii BraTS20_Training_017_t1.nii BraTS20_Training_017_t1ce.nii BraTS20_Training_017_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_255 BraTS20_Training_255_t2.nii BraTS20_Training_255_flair.nii BraTS20_Training_255_t1ce.nii BraTS20_Training_255_t1.nii BraTS20_Training_255_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_197 BraTS20_Training_197_t2.nii BraTS20_Training_197_seg.nii BraTS20_Training_197_flair.nii BraTS20_Training_197_t1.nii BraTS20_Training_197_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_144 BraTS20_Training_144_flair.nii BraTS20_Training_144_seg.nii BraTS20_Training_144_t1.nii BraTS20_Training_144_t2.nii BraTS20_Training_144_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_313 BraTS20_Training_313_t1ce.nii BraTS20_Training_313_t2.nii BraTS20_Training_313_t1.nii BraTS20_Training_313_seg.nii BraTS20_Training_313_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_112 BraTS20_Training_112_t1ce.nii BraTS20_Training_112_t2.nii BraTS20_Training_112_flair.nii BraTS20_Training_112_seg.nii BraTS20_Training_112_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_283 BraTS20_Training_283_t1ce.nii BraTS20_Training_283_flair.nii BraTS20_Training_283_t2.nii BraTS20_Training_283_t1.nii BraTS20_Training_283_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_050 BraTS20_Training_050_t1ce.nii BraTS20_Training_050_t1.nii BraTS20_Training_050_seg.nii BraTS20_Training_050_t2.nii BraTS20_Training_050_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_149 BraTS20_Training_149_t2.nii BraTS20_Training_149_seg.nii BraTS20_Training_149_t1.nii BraTS20_Training_149_t1ce.nii BraTS20_Training_149_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_072 BraTS20_Training_072_t2.nii BraTS20_Training_072_t1.nii BraTS20_Training_072_seg.nii BraTS20_Training_072_flair.nii BraTS20_Training_072_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_118 BraTS20_Training_118_t1.nii BraTS20_Training_118_t2.nii BraTS20_Training_118_flair.nii BraTS20_Training_118_seg.nii BraTS20_Training_118_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_260 BraTS20_Training_260_t1.nii BraTS20_Training_260_t1ce.nii BraTS20_Training_260_seg.nii BraTS20_Training_260_flair.nii BraTS20_Training_260_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_290 BraTS20_Training_290_t1ce.nii BraTS20_Training_290_flair.nii BraTS20_Training_290_t2.nii BraTS20_Training_290_t1.nii BraTS20_Training_290_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_042 BraTS20_Training_042_t2.nii BraTS20_Training_042_t1.nii BraTS20_Training_042_t1ce.nii BraTS20_Training_042_flair.nii BraTS20_Training_042_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_177 BraTS20_Training_177_seg.nii BraTS20_Training_177_t2.nii BraTS20_Training_177_t1ce.nii BraTS20_Training_177_t1.nii BraTS20_Training_177_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_126 BraTS20_Training_126_flair.nii BraTS20_Training_126_t2.nii BraTS20_Training_126_t1ce.nii BraTS20_Training_126_t1.nii BraTS20_Training_126_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_317 BraTS20_Training_317_seg.nii BraTS20_Training_317_flair.nii BraTS20_Training_317_t1.nii BraTS20_Training_317_t1ce.nii BraTS20_Training_317_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_246 BraTS20_Training_246_t1ce.nii BraTS20_Training_246_t1.nii BraTS20_Training_246_flair.nii BraTS20_Training_246_t2.nii BraTS20_Training_246_seg.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_181 BraTS20_Training_181_t2.nii BraTS20_Training_181_seg.nii BraTS20_Training_181_flair.nii BraTS20_Training_181_t1ce.nii BraTS20_Training_181_t1.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_178 BraTS20_Training_178_t2.nii BraTS20_Training_178_t1.nii BraTS20_Training_178_t1ce.nii BraTS20_Training_178_seg.nii BraTS20_Training_178_flair.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_355 BraTS20_Training_355_flair.nii W39_1998.09.19_Segm.nii BraTS20_Training_355_t2.nii BraTS20_Training_355_t1.nii BraTS20_Training_355_t1ce.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_285 BraTS20_Training_285_seg.nii BraTS20_Training_285_t1.nii BraTS20_Training_285_t1ce.nii BraTS20_Training_285_flair.nii BraTS20_Training_285_t2.nii Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_297 BraTS20_Training_297_t2.nii BraTS20_Training_297_t1.nii BraTS20_Training_297_seg.nii BraTS20_Training_297_t1ce.nii BraTS20_Training_297_flair.nii
# Dataset path
dataset_path = '/kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/'
# load and normalize a modality
def load_nifti_image(file_path):
image = nib.load(file_path).get_fdata() # Extracting the image data as a NumPy array with floating-point values
scaler = MinMaxScaler() # rescaling data between 0 and 1
image = scaler.fit_transform(image.reshape(-1, 1)).reshape(image.shape)
return image
# Load MRI images
def load_patient_images(patient_id, dataset_path):
# Full path to patient data
patient_path = os.path.join(dataset_path, patient_id)
images = {
"t1": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t1.nii")),
"t1ce": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t1ce.nii")),
"t2": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t2.nii")),
"flair": load_nifti_image(os.path.join(patient_path, f"{patient_id}_flair.nii")),
# Load segmentation mask (Without normalization)
"seg": nib.load(os.path.join(patient_path, f"{patient_id}_seg.nii")).get_fdata()
}
return images
def visualize_middle_slice(images):
slice_idx = next(iter(images.values())).shape[2] // 2
modalities = list(images.keys())
num_modalities = len(modalities)
plt.figure(figsize=(12, 8))
for i, modality in enumerate(modalities):
plt.subplot(2, 3, i + 1)
cmap = 'gray'
plt.imshow(images[modality][:, :, slice_idx], cmap=cmap)
plt.title(modality)
plt.axis('off')
plt.subplot(2, 3, 6)
plt.imshow(images['seg'][:, :, slice_idx], cmap='viridis')
plt.title('Segmentation')
plt.axis('off')
plt.tight_layout()
plt.show()
print(f"Shape of {modalities[0]}: {images[modalities[0]].shape}")
print(f"slice index = {slice_idx}")
# Choose the patient folder as an example
patient_id = "BraTS20_Training_100"
# Load patient data
patient_data = load_patient_images(patient_id, dataset_path)
# Visualization patient data
visualize_middle_slice(patient_data)
def visualize_middle_slice(images):
slice_idx = next(iter(images.values())).shape[2] // 2
modalities = list(images.keys())
num_modalities = len(modalities)
plt.figure(figsize=(12, 8))
for i, modality in enumerate(modalities):
plt.subplot(2, 3, i + 1)
cmap = 'gray'
plt.imshow(images[modality][:, :, slice_idx], cmap=cmap)
plt.title(modality)
plt.axis('off')
plt.subplot(2, 3, 6)
plt.imshow(images['seg'][:, :, slice_idx], cmap='viridis')
plt.title('Segmentation')
plt.axis('off')
plt.tight_layout()
plt.show()
print(f"Shape of {modalities[0]}: {images[modalities[0]].shape}")
print(f"slice index = {slice_idx}")
# Choose the patient folder as an example
patient_id = "BraTS20_Training_100"
# Load patient data
patient_data = load_patient_images(patient_id, dataset_path)
# Visualization patient data
visualize_middle_slice(patient_data)
Shape of t1: (240, 240, 155) slice index = 77
3D Brain Tumor Visualization with Plotly¶
Interactive 3D demo live 👉 https://t.co/8WimhfZKKn
Setting up this 3D visualization on Hugging Face Spaces requires the following files:
requirements.txt
app.py
! pip install plotly
import plotly.graph_objects as go
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (5.24.1) Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly) (9.1.2) Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from plotly) (24.2)
! pip install plotly scikit-image
from skimage import measure
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (5.24.1) Requirement already satisfied: scikit-image in /usr/local/lib/python3.11/dist-packages (0.25.2) Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly) (9.1.2) Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from plotly) (24.2) Requirement already satisfied: numpy>=1.24 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2.0.2) Requirement already satisfied: scipy>=1.11.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (1.15.3) Requirement already satisfied: networkx>=3.0 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (3.4.2) Requirement already satisfied: pillow>=10.1 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (11.2.1) Requirement already satisfied: imageio!=2.35.0,>=2.33 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2.37.0) Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2025.5.10) Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (0.4)
# Extract tumor regions from segmentation mask
# This creates a binary mask: True where there is tumor (seg > 0), False elsewhere
tumor_mask = (patient_data['seg'] > 0)
# Generate a 3D mesh from the tumor mask using the marching cubes algorithm
# This converts the tumor volume into vertices and faces for 3D surface rendering
# Face is a triangle that connects 3 points (vertices) to form part of a 3D mesh surface
verts_tumor, faces_tumor, _, values_tumor = measure.marching_cubes(tumor_mask, level=0)
# Extract brain structure
# This creates a binary mask: True where T1 image is background (t1 == 0)
brain_mask = (patient_data['t1'] == 0)
# Generate a mesh from the brain mask
# Creates vertices and faces to form a 3D surface of the brain outline
verts_brain, faces_brain, _, _ = measure.marching_cubes(brain_mask, level=0)
# Create an empty 3D Plotly figure
fig = go.Figure()
# Add brain structure mesh
# Use Mesh3d to visualize the brain's outer boundary in 3D
fig.add_trace(go.Mesh3d(
x=verts_brain[:, 0], # X-coordinates of all vertices
y=verts_brain[:, 1], # Y-coordinates
z=verts_brain[:, 2], # Z-coordinates
i=faces_brain[:, 0], # First vertex index of each triangle
j=faces_brain[:, 1], # Second vertex index
k=faces_brain[:, 2], # Third vertex index
color='pink', # Solid color for the brain surface
opacity=0.1, # Very transparent to keep focus on tumor
name='Brain' # Legend label
))
# Add tumor mesh with depth-based coloring (Viridis colormap)
# This makes the tumor visible with colors based on Z-depth
fig.add_trace(go.Mesh3d(
x=verts_tumor[:, 0], # X-coordinates of tumor surface
y=verts_tumor[:, 1], # Y-coordinates
z=verts_tumor[:, 2], # Z-coordinates
i=faces_tumor[:, 0], # First index of each triangle
j=faces_tumor[:, 1], # Second index
k=faces_tumor[:, 2], # Third index
intensity=verts_tumor[:, 2], # Color the surface based on Z-depth
colorscale='Viridis', # Apply Viridis colormap
opacity=0.9, # High opacity to emphasize tumor structure
name='Tumor' # Legend label
))
# Set figure layout and scene details
fig.update_layout(
title='3D Tumor Visualization with Brain Context', # Title of the plot
scene=dict( # Axis and aspect ratio settings
xaxis_title='Width', # Label X-axis
yaxis_title='Height', # Label Y-axis
zaxis_title='Depth', # Label Z-axis
aspectratio=dict(x=1, y=1, z=0.7) # Shape ratio of the 3D space
),
width=800, # Width of the plot window
height=800 # Height of the plot window
)
# Render the plot
fig.show()
slice_idx = 77
plt.figure(figsize=(10, 8))
# Define views with different modalities and orientations
views = {
"T1ce - Transverse": patient_data['t1ce'][:, :, slice_idx],
"T1ce - Frontal": rotate(patient_data['t1ce'][:, slice_idx, :], 90, resize=True),
"T1ce - Sagittal": rotate(patient_data['t1ce'][slice_idx, :, :], 90, resize=True),
"Segmentation - Transverse": patient_data['seg'][:, :, slice_idx],
"Segmentation - Frontal": rotate(patient_data['seg'][:, slice_idx, :], 90, resize=True),
"Segmentation - Sagittal": rotate(patient_data['seg'][slice_idx, :, :], 90, resize=True),
}
# Plotting each view
num_views = len(views)
cols = 3
rows = num_views // cols + (num_views % cols > 0)
for i, (title, img) in enumerate(views.items(), 1):
plt.subplot(rows, cols, i)
cmap = "gray" if "Segmentation" not in title else "viridis"
plt.imshow(img, cmap=cmap)
plt.title(title)
plt.axis('off')
plt.tight_layout()
plt.show()
print("Unique values in segmentation slice:", np.unique(patient_data['seg'][:, :, slice_idx]))
# Define a colormap with four colors for four segmentation classes
cmap = mcolors.ListedColormap(['#440154', '#21918c', '#5ec962', '#fde725'])
norm = mcolors.BoundaryNorm([-0.5, 0.5, 1.5, 2.5, 3.5], cmap.N)
# The segmentation
plt.figure(figsize=(6, 6))
plt.imshow(patient_data['seg'][:, :, slice_idx], cmap=cmap, norm=norm)
plt.colorbar()
plt.title(f"Segmentation Visualization (Slice {slice_idx})")
plt.axis("off")
plt.show()
Unique values in segmentation slice: [0. 1. 2. 4.]
Split Dataset¶
The total number of patient samples in the dataset is 369. However, due to issues with one entry (sample_355), it was removed. The remaining 368 samples were used for model training and evaluation.
These 368 samples were split as follows:
- Training set: 235 samples
- Validation set: 74 samples
- Test set: 59 samples
# List all folders that start with 'BraTS20_Training_'
all_cases = sorted([d for d in os.listdir(dataset_path) if d.startswith("BraTS20_Training_")])
# Remove the problematic case
if 'BraTS20_Training_355' in all_cases:
all_cases.remove('BraTS20_Training_355')
cases = all_cases
print(f"Total Cases: {len(all_cases)}")
print(f"Total cases selected: {len(cases)}")
print("Example case IDs:", cases[:5]) # To check everything works well
Total Cases: 368 Total cases selected: 368 Example case IDs: ['BraTS20_Training_001', 'BraTS20_Training_002', 'BraTS20_Training_003', 'BraTS20_Training_004', 'BraTS20_Training_005']
if 'BraTS20_Training_355' in cases :
print(False)
else :
print(True)
True
# Unique labels across all cases
all_labels = set()
# Loop through all cases
for case in cases:
seg_path = os.path.join(dataset_path, case, f"{case}_seg.nii")
if os.path.exists(seg_path): # Ensure the segmentation file exists
seg = nib.load(seg_path).get_fdata()
unique_labels = np.unique(seg) # Get unique labels for this case
all_labels.update(unique_labels) # Add to the set
# Print the final unique labels found in the dataset
print("Unique labels in the entire dataset:", sorted(all_labels))
Unique labels in the entire dataset: [np.float64(0.0), np.float64(1.0), np.float64(2.0), np.float64(4.0)]
# Split into Train, Validation, and Test
# 80% of the data for training and testing, 20% for validation
train_and_test_ids, val_ids = train_test_split(
cases,
test_size=0.2,
random_state=42
)
# From that 70%, split 80% for training, 20% for testing
train_ids, test_ids = train_test_split(
train_and_test_ids,
test_size=0.2,
random_state=42
)
print(f"Number of training cases: {len(train_ids)}")
print(f"Number of validation cases: {len(val_ids)}")
print(f"Number of test cases: {len(test_ids)}")
# Visualization of dataset Distribution
plt.bar(["Train","Valid","Test"],
[len(train_ids), len(val_ids), len(test_ids)],
align='center',
color=[ '#13b9d3','#ffda27', '#ee363b'],
label=["Train", "Valid", "Test"]
)
plt.legend()
plt.ylabel('Number of Images')
plt.title('Data Distribution')
plt.show()
# Split into Train, Validation, and Test
# 80% of the 300 patients for training and testing, 20% for validation
train_and_test_ids, val_ids = train_test_split(
cases,
test_size=0.2,
random_state=42
)
# From that 70%, split 80% for training, 20% for testing
train_ids, test_ids = train_test_split(
train_and_test_ids,
test_size=0.2,
random_state=42
)
print(f"Number of training cases: {len(train_ids)}")
print(f"Number of validation cases: {len(val_ids)}")
print(f"Number of test cases: {len(test_ids)}")
# Visualization of dataset Distribution
plt.bar(["Train","Valid","Test"],
[len(train_ids), len(val_ids), len(test_ids)],
align='center',
color=[ '#13b9d3','#ffda27', '#ee363b'],
label=["Train", "Valid", "Test"]
)
plt.legend()
plt.ylabel('Number of Images')
plt.title('Data Distribution')
plt.show()
Number of training cases: 235 Number of validation cases: 74 Number of test cases: 59
Data Generator¶
To train a neural network effectively, we use MRI scans (denoted as X) from different patients, where each scan is a large 3D volume composed of many 2D slices. Correspondingly, we use segmentation masks (denoted as Y) that indicate tumor regions for each slice.
However, there are several challenges :
These 3D MRI scans are extremely large and can not be fully loaded into memory at once.
We only use specific 2D slices from the 3D volumes, namely slices 25 to 124, for training. The remaining slices contain little or no meaningful information and increase computational cost unnecessarily.
Each slice must be preprocessed before training: it should be resized to a standard shape and normalized (i.e., intensity values scaled between 0 and 1) to match the expected input format of the neural network.
The corresponding segmentation masks must be one-hot encoded, converting labeled values (0–4) into a multi-channel binary format suitable for multi-class segmentation tasks.
def show_side_by_side_montages(patient_data):
# Extract and process meaningful slices
t1ce_slices = patient_data['t1ce'][40:140]
seg_slices = patient_data['seg'][40:140, :, :]
# Generate montages
montage_t1ce = rotate(montage(t1ce_slices), 90, resize=True)
montage_seg = rotate(montage(seg_slices), 90, resize=True)
# Plot side by side
plt.figure(figsize=(20, 10))
plt.subplot(1, 2, 1)
plt.imshow(montage_t1ce, cmap="gray")
plt.title("Montage of Meaningful T1ce Slices")
plt.axis("off")
plt.subplot(1, 2, 2)
plt.imshow(montage_seg, cmap="viridis")
plt.title("Montage of Meaningful Segmentation Slices")
plt.axis("off")
plt.tight_layout()
plt.show()
show_side_by_side_montages(patient_data)
def show_side_by_side_montages(patient_data):
# Extract and process meaningful slices
t1ce_slices = patient_data['t1ce'][40:140]
seg_slices = patient_data['seg'][40:140, :, :]
# Generate montages
montage_t1ce = rotate(montage(t1ce_slices), 90, resize=True)
montage_seg = rotate(montage(seg_slices), 90, resize=True)
# Plot side by side
plt.figure(figsize=(20, 10))
plt.subplot(1, 2, 1)
plt.imshow(montage_t1ce, cmap="gray")
plt.title("Montage of Meaningful T1ce Slices")
plt.axis("off")
plt.subplot(1, 2, 2)
plt.imshow(montage_seg, cmap="viridis")
plt.title("Montage of Meaningful Segmentation Slices")
plt.axis("off")
plt.tight_layout()
plt.show()
show_side_by_side_montages(patient_data)
One-Hot Encoding of Segmentation Mask¶
We consider volumes from slice 25 to 124, as the visualization above shows that slices below 25 and above 124 are empty and do not provide meaningful data. Therefore, we exclude them to reduce computational cost.
# Define segmentation-areas
segmentation_class = {
0 : 'Background', # No Tumor
1 : 'Necrotic Tumor Core',
2 : 'Peritumoral Edema',
3 : 'Enhancing Tumor' # original 4 that converted into 3
}
# Selecting constants
volume_slices = 100
start_volume = 25 # first slice of volume that we will include
img_size = 128
How Data Generator works ?¶
To answer to those issues , We used Data Generator that handles large datasets by efficiently load MRI volumes slice-by-slice, normalize, resize, and return them as batches for model training.
How It Works :
Batching: The generator divides the dataset into batches using patient IDs, allowing for memory-efficient processing.
On-the-fly loading: Instead of loading the entire dataset into memory, the generator loads only a small subset (a batch) just in time for training.
Preprocessing: Each sample is preprocessed as it’s loaded:
Resized to the target shape
Normalized (intensity values scaled to [0, 1])
Labels are converted to one-hot encoded segmentation masks
Returning batches: After processing, the generator returns:
- Inputs (X): A batch of preprocessed MRI slices with shape (100, 128, 128, 2) representing T1ce and FLAIR modalities
- Mask (Y): Corresponding one-hot encoded segmentation masks with shape (100, 128, 128, 4)
- These batches are fed directly into the model’s fit() function during training.
Epoch end handling: At the end of each training epoch, the generator shuffles the dataset to ensure the model sees the data in a different order in the next epoch, improving generalization.
class DataGenerator(keras.utils.Sequence):
"""Generates data to handling large MRI datasets efficiently."""
def __init__(self, list_IDs, dim=(img_size, img_size), batch_size=1, n_channels=2, shuffle=True):
"""Initializes the data generator with parameters."""
self.dim = dim # Target image size
self.batch_size = batch_size # Number of patients to process per batch (default: 1)
self.list_IDs = list_IDs # List of patient IDs (folder names)
self.n_channels = n_channels # Number of input image channels (default: 2 - T1ce + FLAIR)
self.shuffle = shuffle # Whether to shuffle patient data at the end of each epoch (default: True)
# Initialize indexes and optionally shuffle the data
self.on_epoch_end()
def __len__(self):
"""Returns number of batches there are per epoch."""
return int(np.floor(len(self.list_IDs) / self.batch_size))
def __getitem__(self, index):
"""Generates one batch of data."""
# Get batch indexes from shuffled index list
indexes = self.indexes[index * self.batch_size:(index + 1) * self.batch_size]
# Get actual patient IDs for this batch
batch_ids = [self.list_IDs[k] for k in indexes]
# Load and preprocess the data for this batch
return self.__data_generation(batch_ids)
def on_epoch_end(self):
"""Creates an array of indices and shuffles them if enabled."""
self.indexes = np.arange(len(self.list_IDs)) # [0, 1, 2, ..., N-1]
if self.shuffle:
np.random.shuffle(self.indexes)
def __data_generation(self, batch_ids):
"""Generates the data for the current batch."""
# Allocate memory for input images and segmentation masks
X = np.zeros((self.batch_size * volume_slices, *self.dim, self.n_channels))
y = np.zeros((self.batch_size * volume_slices, 240, 240))
for c, i in enumerate(batch_ids):
# Path to patient folder
case_path = os.path.join(dataset_path, i)
# Load 3D volumes (shape: 240x240x155)
flair = nib.load(os.path.join(case_path, f'{i}_flair.nii')).get_fdata()
t1ce = nib.load(os.path.join(case_path, f'{i}_t1ce.nii')).get_fdata()
seg = nib.load(os.path.join(case_path, f'{i}_seg.nii')).get_fdata()
# Resize FLAIR and T1ce slices and store in X
for j in range(volume_slices):
X[j + volume_slices * c, :, :, 0] = cv2.resize(flair[:, :, j + start_volume], self.dim)
X[j + volume_slices * c, :, :, 1] = cv2.resize(t1ce[:, :, j + start_volume], self.dim)
# Store original (unresized) segmentation mask slice in y
y[j + volume_slices * c] = seg[:, :, j + start_volume]
# Adjust labels: Relabel class 4 to 3 (since class 3 does not exist)
y[y == 4] = 3
# Convert mask to one-hot encoding and resize
mask = tf.one_hot(y, 4)
# Resize segmentation masks to match input image size
Y = tf.image.resize(mask, self.dim)
# Normalize input image intensities to range [0, 1]
return X / np.max(X), Y
# Instantiate the data generators
training_generator = DataGenerator(train_ids)
valid_generator = DataGenerator(val_ids)
test_generator = DataGenerator(test_ids)
NOTE¶
Among the four MRI modalities, T1ce and FLAIR are chosen. Why?
- T1ce is selected because it provides all the anatomical detail of T1, plus highlighting the enhancing tumor core (i.e. areas of active and aggressive tumor). This is enabled by a contrast agent that leaks into abnormal tissue, making such regions more visible.
- FLAIR is preferred over T2 as it offers a cleaner view for tumor detection and segmentation. While T2 shows fluid and can detect edema, it also displays cerebrospinal fluid (CSF), which may obscure tumor boundaries. In contrast, FLAIR suppresses the CSF signal, allowing better visualization of tumor-related swelling.
By focusing on T1ce and FLAIR, we capture both:
- Active tumor regions (via T1ce)
- Edema areas (via FLAIR)
Additionally, using only T1ce and FLAIR helps reduce memory usage and model complexity (i.e., fewer parameters are required). In contrast, including T1 and T2 may introduce redundant or low-value data, which can lead the model to learn noise rather than meaningful patterns.
# Get one batch of data from the training generator
X_batch, Y_batch = training_generator.__getitem__(0)
# Print shapes and types for verification
print("Input shape:", X_batch.shape) # Expected: (batch_size * VOLUME_SLICES, IMG_SIZE, IMG_SIZE, n_channels)
print("Label shape:", Y_batch.shape) # Expected: (batch_size * VOLUME_SLICES, IMG_SIZE, IMG_SIZE, num_classes)
print("Input dtype:", X_batch.dtype)
print("Label dtype:", Y_batch.dtype)
# Function to display a single slice and its segmentation
def display_slice_and_segmentation(flair, t1ce, segmentation):
fig, axes = plt.subplots(1, 4, figsize=(12, 4))
axes[0].imshow(flair, cmap='gray')
axes[0].set_title('FLAIR')
axes[0].axis('off')
axes[1].imshow(t1ce, cmap='gray')
axes[1].set_title('T1ce')
axes[1].axis('off')
axes[2].imshow(segmentation, cmap='gray')
axes[2].set_title('Segmentation (grayscale)')
axes[2].axis('off')
axes[3].imshow(segmentation, cmap='viridis')
axes[3].set_title('Segmentation (viridis)')
axes[3].axis('off')
plt.tight_layout()
plt.show()
# Load a specific batch (e.g., batch 8)
X_batch, Y_batch = training_generator[10]
# Split the modalities and decode the mask
flair_batch = X_batch[:, :, :, 0] # Channel 0: FLAIR
t1ce_batch = X_batch[:, :, :, 1] # Channel 1: T1ce
segmentation_batch = np.argmax(Y_batch, axis=-1) # Convert one-hot to class labels
# Choose a slice to visualize
slice_index = 60
slice_flair = flair_batch[slice_index]
slice_t1ce = t1ce_batch[slice_index]
slice_segmentation = segmentation_batch[slice_index]
# Display the selected slice
display_slice_and_segmentation(slice_flair, slice_t1ce, slice_segmentation)
# Check index shuffling behavior
indexes_before = training_generator.indexes.copy()
training_generator.on_epoch_end()
indexes_after = training_generator.indexes
print("Indexes before shuffling:", indexes_before[:10])
print("Indexes after shuffling: ", indexes_after[:10])
Input shape: (100, 128, 128, 2) Label shape: (100, 128, 128, 4) Input dtype: float64 Label dtype: <dtype: 'float32'>
Indexes before shuffling: [110 98 70 192 188 2 105 149 197 69] Indexes after shuffling: [125 226 55 27 57 7 122 139 201 108]
Evaluation Measures¶
- The Dice Coefficient : Measures the overlap between two the predicted segmentation mask and the ground truth.
- Rang : between 0 (no overlap) and 1 (perfect overlap).
- Formula :
$$
\text{Dice} = \frac{2 \cdot |A \cap B| + \text{smooth}}{|A| + |B| + \text{smooth}}
$$
Where: - A = predicted mask
- B = ground truth mask
- smooth is a small constant (e.g., 1.0) to avoid division by zero
Special Case — Empty Prediction and Ground Truth¶
When both the predicted mask and ground truth are empty (i.e., no tumor is present):
With smooth = 1:
$$ \text{Dice} = \frac{0 + 1}{0 + 1} = 1.0 $$
The model is correctly rewarded for predicting "nothing" when there is nothing to predict. This keeps the training stable and avoids unfair penalizing the model.
# Computes the average Dice coefficient across all classes
def dice_coef(y_true, y_pred, smooth=1.0):
class_num = y_true.shape[-1] # Number of classes
dice_scores = [] # Stores Dice scores for each class
# Loop through each class and calculate the Dice coefficient
for i in range(class_num):
y_true_f = K.batch_flatten(y_true[..., i]) # Flatten the ground truth mask for class i
y_pred_f = K.batch_flatten(y_pred[..., i]) # Flatten the predicted mask for class i
intersection = K.sum(y_true_f * y_pred_f) # Computes the intersection
# Compute Dice score for the current class
score = (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
dice_scores.append(score)
# Returns the mean Dice score across all classes
return K.mean(K.stack(dice_scores))
# Calculates the Dice coefficient for a specific class
def dice_coef_per_class(y_true, y_pred, class_idx, epsilon=1e-6):
y_true_f = K.batch_flatten(y_true[..., class_idx]) # Flatten the ground truth mask
y_pred_f = K.batch_flatten(y_pred[..., class_idx]) # Flatten the predicted mask
intersection = K.sum(y_true_f * y_pred_f) # Computes the intersection
# Computes the Dice score for the specified class
return (2. * intersection + epsilon) / (K.sum(y_true_f) + K.sum(y_pred_f) + epsilon)
# Class-specific metrics
def dice_coef_necrotic(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 1)
def dice_coef_edema(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 2)
def dice_coef_enhancing(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 3)
- Precision: Measures how many of the predicted positives are actually correct.
Formula: $$ \text{Precision} = \frac{TP}{TP + FP} $$
Where:
- TP = True Positives
- FP = False Positives
High precision means few false alarms
- Sensitivity (Recall): Measures how many of the actual positives were correctly identified.
Formula:
$$
\text{Sensitivity} = \frac{TP}{TP + FN}
$$
Where:
- FN = False Negatives
High sensitivity means few missed positives
- Specificity: Measures how many of the actual negatives were correctly identified.
Formula: $$ \text{Specificity} = \frac{TN}{TN + FP} $$
Where:
- TN = True Negatives
High specificity means few false positives
- IoU (Intersection over Union: Metric that measures how much the predicted region overlaps with the ground truth region.
Formula: $$ \text{IoU} = \frac{|A \cap B|}{|A \cup B|} $$
Dice Coefficient (in terms of IoU):
$$ \text{Dice} = \frac{2 \cdot \text{IoU}}{1 + \text{IoU}} $$
So Dice is always slightly higher than IoU for the same inputs.
Intersection over Union (IoU): Ratio of overlap to total union
$$ \text{IoU} = \frac{TP}{TP + FP + FN} $$
Dice Coefficient: Balance between precision and recall
$$ \text{Dice} = \frac{2TP}{2TP + FP + FN} $$
def precision(y_true, y_pred):
# Ensure the tensors are binary
y_pred = K.round(K.clip(y_pred, 0, 1))
y_true = K.round(K.clip(y_true, 0, 1))
true_positives = K.sum(y_true * y_pred)
predicted_positives = K.sum(y_pred)
return true_positives / (predicted_positives + K.epsilon()) # prevent division by zero
def sensitivity(y_true, y_pred):
# Ensure the tensors are binary
y_pred = K.round(K.clip(y_pred, 0, 1))
y_true = K.round(K.clip(y_true, 0, 1))
true_positives = K.sum(y_true * y_pred)
possible_positives = K.sum(y_true)
return true_positives / (possible_positives + K.epsilon())
def specificity(y_true, y_pred):
# Ensure the tensors are binary
y_pred = K.round(K.clip(y_pred, 0, 1))
y_true = K.round(K.clip(y_true, 0, 1))
true_negatives = K.sum((1 - y_true) * (1 - y_pred))
possible_negatives = K.sum(1 - y_true)
return true_negatives / (possible_negatives + K.epsilon())
Define the Model¶
This function defines a U-Net architecture, a type of convolutional neural network (CNN) designed specifically for image segmentation tasks.
U-Net is structured into two main components:
Encoder (Downsampling Path)
Learns what’s in the image.
Uses convolution and pooling layers to reduce the size of the image and capture important features.
Decoder (Upsampling Path)
This part rebuilds the image size from the smaller feature maps.
It combines detailed information from the encoder to predict a class for each pixel.
This helps the model understand where each object is in the image.
This design allows U-Net to learn both what is in the image and where it is, making it highly effective for pixel-wise classification tasks.
def build_unet(inputs, ker_init='he_normal', dropout=0.2):
"""
inputs: The input tensor with shape (img_size, img_size, 2)
ker_init: The initializer for kernel weights
dropout: Dropout rate to help prevent overfitting in the bottleneck.
"""
# Encoder
conv1 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(inputs)
conv1 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool1)
conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv2)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
conv3 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool2)
conv3 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv3)
pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)
conv4 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool3)
conv4 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv4)
pool4 = MaxPooling2D(pool_size=(2, 2))(conv4)
# Bottleneck
conv5 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool4)
conv5 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv5)
# Drops 20% of neurons to make neurons less dependent and learn more general features (prevent overfitting)
drop5 = Dropout(dropout)(conv5)
# Decoder
# Increase spatial size
up6 = Conv2D(256, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(drop5))
# concatenates the upsampled data up6 with the encoder's features conv4 with depth = 3
merge6 = concatenate([conv4, up6], axis=3)
# Let the model learn new patterns from the combined info
conv6 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge6)
conv6 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv6)
up7 = Conv2D(128, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv6))
merge7 = concatenate([conv3, up7], axis=3)
conv7 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge7)
conv7 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv7)
up8 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv7))
merge8 = concatenate([conv2, up8], axis=3)
conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge8)
conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv8)
up9 = Conv2D(32, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv8))
merge9 = concatenate([conv1, up9], axis=3)
conv9 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge9)
conv9 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv9)
# Output
conv10 = Conv2D(4, (1, 1), activation='softmax')(conv9)
return Model(inputs=inputs, outputs=conv10)
# Define model input
input_layer = Input(shape=(img_size, img_size, 2))
# Build U-Net model
model = build_unet(input_layer, 'he_normal', 0.2)
# Dice loss and combined loss
def dice_loss(y_true, y_pred, smooth=1e-6):
y_true_f = tf.reshape(y_true, [-1, 4])
y_pred_f = tf.reshape(y_pred, [-1, 4])
intersection = tf.reduce_sum(y_true_f * y_pred_f, axis=0)
union = tf.reduce_sum(y_true_f, axis=0) + tf.reduce_sum(y_pred_f, axis=0)
dice = (2. * intersection + smooth) / (union + smooth)
return 1 - tf.reduce_mean(dice)
def combined_loss(y_true, y_pred):
ce = tf.keras.losses.categorical_crossentropy(y_true, y_pred)
dl = dice_loss(y_true, y_pred)
return ce + dl
model.compile(
loss=combined_loss,
optimizer=Adam(learning_rate=0.001), # learning_rate = how fast the model updates during training
# what reports during training
metrics=[
MeanIoU(num_classes=4, name="mean_io_u"),
dice_coef,
precision,
sensitivity,
specificity,
dice_coef_necrotic,
dice_coef_edema,
dice_coef_enhancing
]
)
# Define Callbacks
callbacks = [
# Reduce Learning Rate On Plateau
# If validation loss doesn't improve after 2 epochs, it reduces the learning rate by a factor of 0.2
ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=2, min_lr=1e-6, verbose=1),
# Saves model weights after each epoch only if validation loss improves
ModelCheckpoint(
filepath='model_.{epoch:02d}-{val_loss:.6f}.weights.h5',
verbose=1,
save_best_only=True,
save_weights_only=True
),
# Saves training and validation metrics to a CSV file
CSVLogger('training.log', separator=',', append=False)
]
# Print model summary
model.summary()
Model: "functional"
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓ ┃ Layer (type) ┃ Output Shape ┃ Param # ┃ Connected to ┃ ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩ │ input_layer │ (None, 128, 128, │ 0 │ - │ │ (InputLayer) │ 2) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d (Conv2D) │ (None, 128, 128, │ 608 │ input_layer[0][0] │ │ │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_1 (Conv2D) │ (None, 128, 128, │ 9,248 │ conv2d[0][0] │ │ │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ max_pooling2d │ (None, 64, 64, │ 0 │ conv2d_1[0][0] │ │ (MaxPooling2D) │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_2 (Conv2D) │ (None, 64, 64, │ 18,496 │ max_pooling2d[0]… │ │ │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_3 (Conv2D) │ (None, 64, 64, │ 36,928 │ conv2d_2[0][0] │ │ │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ max_pooling2d_1 │ (None, 32, 32, │ 0 │ conv2d_3[0][0] │ │ (MaxPooling2D) │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_4 (Conv2D) │ (None, 32, 32, │ 73,856 │ max_pooling2d_1[… │ │ │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_5 (Conv2D) │ (None, 32, 32, │ 147,584 │ conv2d_4[0][0] │ │ │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ max_pooling2d_2 │ (None, 16, 16, │ 0 │ conv2d_5[0][0] │ │ (MaxPooling2D) │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_6 (Conv2D) │ (None, 16, 16, │ 295,168 │ max_pooling2d_2[… │ │ │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_7 (Conv2D) │ (None, 16, 16, │ 590,080 │ conv2d_6[0][0] │ │ │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ max_pooling2d_3 │ (None, 8, 8, 256) │ 0 │ conv2d_7[0][0] │ │ (MaxPooling2D) │ │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_8 (Conv2D) │ (None, 8, 8, 512) │ 1,180,160 │ max_pooling2d_3[… │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_9 (Conv2D) │ (None, 8, 8, 512) │ 2,359,808 │ conv2d_8[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ dropout (Dropout) │ (None, 8, 8, 512) │ 0 │ conv2d_9[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ up_sampling2d │ (None, 16, 16, │ 0 │ dropout[0][0] │ │ (UpSampling2D) │ 512) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_10 (Conv2D) │ (None, 16, 16, │ 524,544 │ up_sampling2d[0]… │ │ │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ concatenate │ (None, 16, 16, │ 0 │ conv2d_7[0][0], │ │ (Concatenate) │ 512) │ │ conv2d_10[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_11 (Conv2D) │ (None, 16, 16, │ 1,179,904 │ concatenate[0][0] │ │ │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_12 (Conv2D) │ (None, 16, 16, │ 590,080 │ conv2d_11[0][0] │ │ │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ up_sampling2d_1 │ (None, 32, 32, │ 0 │ conv2d_12[0][0] │ │ (UpSampling2D) │ 256) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_13 (Conv2D) │ (None, 32, 32, │ 131,200 │ up_sampling2d_1[… │ │ │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ concatenate_1 │ (None, 32, 32, │ 0 │ conv2d_5[0][0], │ │ (Concatenate) │ 256) │ │ conv2d_13[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_14 (Conv2D) │ (None, 32, 32, │ 295,040 │ concatenate_1[0]… │ │ │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_15 (Conv2D) │ (None, 32, 32, │ 147,584 │ conv2d_14[0][0] │ │ │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ up_sampling2d_2 │ (None, 64, 64, │ 0 │ conv2d_15[0][0] │ │ (UpSampling2D) │ 128) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_16 (Conv2D) │ (None, 64, 64, │ 32,832 │ up_sampling2d_2[… │ │ │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ concatenate_2 │ (None, 64, 64, │ 0 │ conv2d_3[0][0], │ │ (Concatenate) │ 128) │ │ conv2d_16[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_17 (Conv2D) │ (None, 64, 64, │ 73,792 │ concatenate_2[0]… │ │ │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_18 (Conv2D) │ (None, 64, 64, │ 36,928 │ conv2d_17[0][0] │ │ │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ up_sampling2d_3 │ (None, 128, 128, │ 0 │ conv2d_18[0][0] │ │ (UpSampling2D) │ 64) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_19 (Conv2D) │ (None, 128, 128, │ 8,224 │ up_sampling2d_3[… │ │ │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ concatenate_3 │ (None, 128, 128, │ 0 │ conv2d_1[0][0], │ │ (Concatenate) │ 64) │ │ conv2d_19[0][0] │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_20 (Conv2D) │ (None, 128, 128, │ 18,464 │ concatenate_3[0]… │ │ │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_21 (Conv2D) │ (None, 128, 128, │ 9,248 │ conv2d_20[0][0] │ │ │ 32) │ │ │ ├─────────────────────┼───────────────────┼────────────┼───────────────────┤ │ conv2d_22 (Conv2D) │ (None, 128, 128, │ 132 │ conv2d_21[0][0] │ │ │ 4) │ │ │ └─────────────────────┴───────────────────┴────────────┴───────────────────┘
Total params: 7,759,908 (29.60 MB)
Trainable params: 7,759,908 (29.60 MB)
Non-trainable params: 0 (0.00 B)
! pip install visualkeras
import visualkeras
Requirement already satisfied: visualkeras in /usr/local/lib/python3.11/dist-packages (0.1.4) Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (11.2.1) Requirement already satisfied: numpy>=1.18.1 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (2.0.2) Requirement already satisfied: aggdraw>=1.3.11 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (1.3.19)
# Visualization
visualkeras.layered_view(model, legend=True)
/usr/local/lib/python3.11/dist-packages/visualkeras/layered.py:86: UserWarning: The legend_text_spacing_offset parameter is deprecated and will be removed in a future release.
# Train the U-Net model
history = model.fit(training_generator, # Training data generator
epochs=35, # Number of training epochs
steps_per_epoch=len(train_ids), # Number of steps per epoch
callbacks= callbacks, # Callbacks
validation_data = valid_generator # Validation data generator
)
Epoch 1/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 686ms/step - dice_coef: 0.2550 - dice_coef_edema: 0.0483 - dice_coef_enhancing: 0.0135 - dice_coef_necrotic: 0.0182 - loss: 0.9685 - mean_io_u: 0.5516 - precision: 0.9556 - sensitivity: 0.9090 - specificity: 0.9948 Epoch 1: val_loss improved from inf to 0.85315, saving model to model_.01-0.853152.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 246s 926ms/step - dice_coef: 0.2551 - dice_coef_edema: 0.0484 - dice_coef_enhancing: 0.0135 - dice_coef_necrotic: 0.0182 - loss: 0.9680 - mean_io_u: 0.5518 - precision: 0.9557 - sensitivity: 0.9092 - specificity: 0.9948 - val_dice_coef: 0.2660 - val_dice_coef_edema: 0.0485 - val_dice_coef_enhancing: 0.0081 - val_dice_coef_necrotic: 0.0164 - val_loss: 0.8532 - val_mean_io_u: 0.8200 - val_precision: 0.9836 - val_sensitivity: 0.9825 - val_specificity: 0.9945 - learning_rate: 0.0010 Epoch 2/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.2858 - dice_coef_edema: 0.1083 - dice_coef_enhancing: 0.0204 - dice_coef_necrotic: 0.0349 - loss: 0.8071 - mean_io_u: 0.5670 - precision: 0.9864 - sensitivity: 0.9653 - specificity: 0.9955 Epoch 2: val_loss improved from 0.85315 to 0.77589, saving model to model_.02-0.775888.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.2858 - dice_coef_edema: 0.1083 - dice_coef_enhancing: 0.0204 - dice_coef_necrotic: 0.0349 - loss: 0.8071 - mean_io_u: 0.5672 - precision: 0.9864 - sensitivity: 0.9653 - specificity: 0.9955 - val_dice_coef: 0.2939 - val_dice_coef_edema: 0.1252 - val_dice_coef_enhancing: 0.0286 - val_dice_coef_necrotic: 0.0356 - val_loss: 0.7759 - val_mean_io_u: 0.8094 - val_precision: 0.9864 - val_sensitivity: 0.9771 - val_specificity: 0.9955 - learning_rate: 0.0010 Epoch 3/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.3027 - dice_coef_edema: 0.1298 - dice_coef_enhancing: 0.0517 - dice_coef_necrotic: 0.0484 - loss: 0.7919 - mean_io_u: 0.7432 - precision: 0.9876 - sensitivity: 0.9635 - specificity: 0.9959 Epoch 3: val_loss improved from 0.77589 to 0.73797, saving model to model_.03-0.737972.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.3027 - dice_coef_edema: 0.1297 - dice_coef_enhancing: 0.0517 - dice_coef_necrotic: 0.0484 - loss: 0.7920 - mean_io_u: 0.7428 - precision: 0.9876 - sensitivity: 0.9635 - specificity: 0.9959 - val_dice_coef: 0.3299 - val_dice_coef_edema: 0.1307 - val_dice_coef_enhancing: 0.1500 - val_dice_coef_necrotic: 0.0523 - val_loss: 0.7380 - val_mean_io_u: 0.7714 - val_precision: 0.9857 - val_sensitivity: 0.9775 - val_specificity: 0.9953 - learning_rate: 0.0010 Epoch 4/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 217ms/step - dice_coef: 0.3276 - dice_coef_edema: 0.1236 - dice_coef_enhancing: 0.1540 - dice_coef_necrotic: 0.0446 - loss: 0.7588 - mean_io_u: 0.6188 - precision: 0.9845 - sensitivity: 0.9737 - specificity: 0.9949 Epoch 4: val_loss improved from 0.73797 to 0.66522, saving model to model_.04-0.665222.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.3277 - dice_coef_edema: 0.1237 - dice_coef_enhancing: 0.1540 - dice_coef_necrotic: 0.0446 - loss: 0.7588 - mean_io_u: 0.6189 - precision: 0.9845 - sensitivity: 0.9737 - specificity: 0.9949 - val_dice_coef: 0.4007 - val_dice_coef_edema: 0.2254 - val_dice_coef_enhancing: 0.2581 - val_dice_coef_necrotic: 0.1286 - val_loss: 0.6652 - val_mean_io_u: 0.8281 - val_precision: 0.9865 - val_sensitivity: 0.9832 - val_specificity: 0.9955 - learning_rate: 0.0010 Epoch 5/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4040 - dice_coef_edema: 0.2066 - dice_coef_enhancing: 0.2883 - dice_coef_necrotic: 0.1351 - loss: 0.6797 - mean_io_u: 0.8111 - precision: 0.9787 - sensitivity: 0.9724 - specificity: 0.9930 Epoch 5: val_loss improved from 0.66522 to 0.62769, saving model to model_.05-0.627692.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.4040 - dice_coef_edema: 0.2066 - dice_coef_enhancing: 0.2883 - dice_coef_necrotic: 0.1351 - loss: 0.6798 - mean_io_u: 0.8110 - precision: 0.9787 - sensitivity: 0.9724 - specificity: 0.9930 - val_dice_coef: 0.4315 - val_dice_coef_edema: 0.2217 - val_dice_coef_enhancing: 0.3327 - val_dice_coef_necrotic: 0.1808 - val_loss: 0.6277 - val_mean_io_u: 0.3756 - val_precision: 0.9853 - val_sensitivity: 0.9828 - val_specificity: 0.9951 - learning_rate: 0.0010 Epoch 6/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4254 - dice_coef_edema: 0.2364 - dice_coef_enhancing: 0.3106 - dice_coef_necrotic: 0.1661 - loss: 0.6536 - mean_io_u: 0.6706 - precision: 0.9803 - sensitivity: 0.9773 - specificity: 0.9935 Epoch 6: val_loss did not improve from 0.62769 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.4255 - dice_coef_edema: 0.2364 - dice_coef_enhancing: 0.3107 - dice_coef_necrotic: 0.1662 - loss: 0.6535 - mean_io_u: 0.6708 - precision: 0.9803 - sensitivity: 0.9773 - specificity: 0.9935 - val_dice_coef: 0.4536 - val_dice_coef_edema: 0.2743 - val_dice_coef_enhancing: 0.3755 - val_dice_coef_necrotic: 0.1756 - val_loss: 0.6295 - val_mean_io_u: 0.8148 - val_precision: 0.9787 - val_sensitivity: 0.9781 - val_specificity: 0.9929 - learning_rate: 0.0010 Epoch 7/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4511 - dice_coef_edema: 0.2581 - dice_coef_enhancing: 0.3398 - dice_coef_necrotic: 0.2124 - loss: 0.6392 - mean_io_u: 0.5541 - precision: 0.9783 - sensitivity: 0.9739 - specificity: 0.9929 Epoch 7: val_loss improved from 0.62769 to 0.55750, saving model to model_.07-0.557503.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.4512 - dice_coef_edema: 0.2582 - dice_coef_enhancing: 0.3400 - dice_coef_necrotic: 0.2125 - loss: 0.6391 - mean_io_u: 0.5542 - precision: 0.9783 - sensitivity: 0.9739 - specificity: 0.9929 - val_dice_coef: 0.5157 - val_dice_coef_edema: 0.3113 - val_dice_coef_enhancing: 0.4486 - val_dice_coef_necrotic: 0.3112 - val_loss: 0.5575 - val_mean_io_u: 0.8199 - val_precision: 0.9829 - val_sensitivity: 0.9817 - val_specificity: 0.9943 - learning_rate: 0.0010 Epoch 8/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.5002 - dice_coef_edema: 0.2981 - dice_coef_enhancing: 0.4252 - dice_coef_necrotic: 0.2869 - loss: 0.5801 - mean_io_u: 0.6407 - precision: 0.9807 - sensitivity: 0.9786 - specificity: 0.9936 Epoch 8: val_loss improved from 0.55750 to 0.51539, saving model to model_.08-0.515393.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5001 - dice_coef_edema: 0.2982 - dice_coef_enhancing: 0.4252 - dice_coef_necrotic: 0.2869 - loss: 0.5801 - mean_io_u: 0.6409 - precision: 0.9807 - sensitivity: 0.9786 - specificity: 0.9936 - val_dice_coef: 0.5453 - val_dice_coef_edema: 0.3509 - val_dice_coef_enhancing: 0.4699 - val_dice_coef_necrotic: 0.3681 - val_loss: 0.5154 - val_mean_io_u: 0.7961 - val_precision: 0.9851 - val_sensitivity: 0.9836 - val_specificity: 0.9950 - learning_rate: 0.0010 Epoch 9/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 222ms/step - dice_coef: 0.5367 - dice_coef_edema: 0.3737 - dice_coef_enhancing: 0.4625 - dice_coef_necrotic: 0.3176 - loss: 0.5334 - mean_io_u: 0.6849 - precision: 0.9838 - sensitivity: 0.9828 - specificity: 0.9946 Epoch 9: val_loss improved from 0.51539 to 0.46823, saving model to model_.09-0.468233.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 292ms/step - dice_coef: 0.5367 - dice_coef_edema: 0.3737 - dice_coef_enhancing: 0.4625 - dice_coef_necrotic: 0.3177 - loss: 0.5333 - mean_io_u: 0.6847 - precision: 0.9838 - sensitivity: 0.9828 - specificity: 0.9946 - val_dice_coef: 0.5885 - val_dice_coef_edema: 0.3795 - val_dice_coef_enhancing: 0.5527 - val_dice_coef_necrotic: 0.4258 - val_loss: 0.4682 - val_mean_io_u: 0.7885 - val_precision: 0.9890 - val_sensitivity: 0.9884 - val_specificity: 0.9964 - learning_rate: 0.0010 Epoch 10/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.5522 - dice_coef_edema: 0.3707 - dice_coef_enhancing: 0.4801 - dice_coef_necrotic: 0.3651 - loss: 0.5133 - mean_io_u: 0.6835 - precision: 0.9844 - sensitivity: 0.9827 - specificity: 0.9949 Epoch 10: val_loss did not improve from 0.46823 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5522 - dice_coef_edema: 0.3707 - dice_coef_enhancing: 0.4801 - dice_coef_necrotic: 0.3651 - loss: 0.5133 - mean_io_u: 0.6832 - precision: 0.9844 - sensitivity: 0.9827 - specificity: 0.9949 - val_dice_coef: 0.5699 - val_dice_coef_edema: 0.3932 - val_dice_coef_enhancing: 0.5031 - val_dice_coef_necrotic: 0.3900 - val_loss: 0.4885 - val_mean_io_u: 0.3767 - val_precision: 0.9867 - val_sensitivity: 0.9858 - val_specificity: 0.9956 - learning_rate: 0.0010 Epoch 11/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 225ms/step - dice_coef: 0.5695 - dice_coef_edema: 0.3890 - dice_coef_enhancing: 0.5248 - dice_coef_necrotic: 0.3711 - loss: 0.4954 - mean_io_u: 0.4366 - precision: 0.9847 - sensitivity: 0.9838 - specificity: 0.9949 Epoch 11: val_loss improved from 0.46823 to 0.44162, saving model to model_.11-0.441615.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.5696 - dice_coef_edema: 0.3891 - dice_coef_enhancing: 0.5248 - dice_coef_necrotic: 0.3712 - loss: 0.4953 - mean_io_u: 0.4367 - precision: 0.9847 - sensitivity: 0.9838 - specificity: 0.9949 - val_dice_coef: 0.6158 - val_dice_coef_edema: 0.4628 - val_dice_coef_enhancing: 0.5720 - val_dice_coef_necrotic: 0.4303 - val_loss: 0.4416 - val_mean_io_u: 0.3892 - val_precision: 0.9874 - val_sensitivity: 0.9864 - val_specificity: 0.9958 - learning_rate: 0.0010 Epoch 12/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.5904 - dice_coef_edema: 0.4283 - dice_coef_enhancing: 0.5267 - dice_coef_necrotic: 0.4116 - loss: 0.4717 - mean_io_u: 0.4887 - precision: 0.9873 - sensitivity: 0.9867 - specificity: 0.9958 Epoch 12: val_loss improved from 0.44162 to 0.42316, saving model to model_.12-0.423160.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5905 - dice_coef_edema: 0.4285 - dice_coef_enhancing: 0.5268 - dice_coef_necrotic: 0.4116 - loss: 0.4716 - mean_io_u: 0.4888 - precision: 0.9873 - sensitivity: 0.9867 - specificity: 0.9958 - val_dice_coef: 0.6321 - val_dice_coef_edema: 0.5067 - val_dice_coef_enhancing: 0.5929 - val_dice_coef_necrotic: 0.4320 - val_loss: 0.4232 - val_mean_io_u: 0.8026 - val_precision: 0.9890 - val_sensitivity: 0.9888 - val_specificity: 0.9963 - learning_rate: 0.0010 Epoch 13/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.6197 - dice_coef_edema: 0.4734 - dice_coef_enhancing: 0.5693 - dice_coef_necrotic: 0.4392 - loss: 0.4365 - mean_io_u: 0.4972 - precision: 0.9886 - sensitivity: 0.9882 - specificity: 0.9962 Epoch 13: val_loss improved from 0.42316 to 0.40523, saving model to model_.13-0.405229.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.6198 - dice_coef_edema: 0.4735 - dice_coef_enhancing: 0.5693 - dice_coef_necrotic: 0.4392 - loss: 0.4365 - mean_io_u: 0.4971 - precision: 0.9886 - sensitivity: 0.9882 - specificity: 0.9962 - val_dice_coef: 0.6462 - val_dice_coef_edema: 0.5207 - val_dice_coef_enhancing: 0.6129 - val_dice_coef_necrotic: 0.4547 - val_loss: 0.4052 - val_mean_io_u: 0.3776 - val_precision: 0.9892 - val_sensitivity: 0.9890 - val_specificity: 0.9964 - learning_rate: 0.0010 Epoch 14/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.6374 - dice_coef_edema: 0.5180 - dice_coef_enhancing: 0.6063 - dice_coef_necrotic: 0.4285 - loss: 0.4184 - mean_io_u: 0.4515 - precision: 0.9890 - sensitivity: 0.9887 - specificity: 0.9963 Epoch 14: val_loss did not improve from 0.40523 235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.6374 - dice_coef_edema: 0.5180 - dice_coef_enhancing: 0.6062 - dice_coef_necrotic: 0.4286 - loss: 0.4184 - mean_io_u: 0.4517 - precision: 0.9890 - sensitivity: 0.9888 - specificity: 0.9963 - val_dice_coef: 0.6042 - val_dice_coef_edema: 0.4593 - val_dice_coef_enhancing: 0.5463 - val_dice_coef_necrotic: 0.4201 - val_loss: 0.4621 - val_mean_io_u: 0.3828 - val_precision: 0.9819 - val_sensitivity: 0.9810 - val_specificity: 0.9940 - learning_rate: 0.0010 Epoch 15/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.6330 - dice_coef_edema: 0.4998 - dice_coef_enhancing: 0.5807 - dice_coef_necrotic: 0.4543 - loss: 0.4188 - mean_io_u: 0.6244 - precision: 0.9894 - sensitivity: 0.9890 - specificity: 0.9965 Epoch 15: val_loss improved from 0.40523 to 0.39552, saving model to model_.15-0.395521.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 287ms/step - dice_coef: 0.6330 - dice_coef_edema: 0.4998 - dice_coef_enhancing: 0.5807 - dice_coef_necrotic: 0.4543 - loss: 0.4188 - mean_io_u: 0.6243 - precision: 0.9894 - sensitivity: 0.9890 - specificity: 0.9965 - val_dice_coef: 0.6519 - val_dice_coef_edema: 0.5314 - val_dice_coef_enhancing: 0.6028 - val_dice_coef_necrotic: 0.4773 - val_loss: 0.3955 - val_mean_io_u: 0.3765 - val_precision: 0.9896 - val_sensitivity: 0.9894 - val_specificity: 0.9965 - learning_rate: 0.0010 Epoch 16/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 223ms/step - dice_coef: 0.6311 - dice_coef_edema: 0.5041 - dice_coef_enhancing: 0.5695 - dice_coef_necrotic: 0.4505 - loss: 0.4197 - mean_io_u: 0.5321 - precision: 0.9899 - sensitivity: 0.9896 - specificity: 0.9966 Epoch 16: val_loss improved from 0.39552 to 0.38759, saving model to model_.16-0.387587.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.6312 - dice_coef_edema: 0.5042 - dice_coef_enhancing: 0.5696 - dice_coef_necrotic: 0.4506 - loss: 0.4196 - mean_io_u: 0.5321 - precision: 0.9899 - sensitivity: 0.9896 - specificity: 0.9966 - val_dice_coef: 0.6603 - val_dice_coef_edema: 0.5521 - val_dice_coef_enhancing: 0.6353 - val_dice_coef_necrotic: 0.4567 - val_loss: 0.3876 - val_mean_io_u: 0.3817 - val_precision: 0.9901 - val_sensitivity: 0.9899 - val_specificity: 0.9967 - learning_rate: 0.0010 Epoch 17/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.6873 - dice_coef_edema: 0.6001 - dice_coef_enhancing: 0.6541 - dice_coef_necrotic: 0.4971 - loss: 0.3541 - mean_io_u: 0.5348 - precision: 0.9917 - sensitivity: 0.9914 - specificity: 0.9972 Epoch 17: val_loss did not improve from 0.38759 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 287ms/step - dice_coef: 0.6872 - dice_coef_edema: 0.5999 - dice_coef_enhancing: 0.6539 - dice_coef_necrotic: 0.4970 - loss: 0.3542 - mean_io_u: 0.5348 - precision: 0.9917 - sensitivity: 0.9914 - specificity: 0.9972 - val_dice_coef: 0.6462 - val_dice_coef_edema: 0.5143 - val_dice_coef_enhancing: 0.6121 - val_dice_coef_necrotic: 0.4610 - val_loss: 0.4047 - val_mean_io_u: 0.3765 - val_precision: 0.9905 - val_sensitivity: 0.9903 - val_specificity: 0.9968 - learning_rate: 0.0010 Epoch 18/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 216ms/step - dice_coef: 0.6619 - dice_coef_edema: 0.5460 - dice_coef_enhancing: 0.6028 - dice_coef_necrotic: 0.5000 - loss: 0.3838 - mean_io_u: 0.4606 - precision: 0.9908 - sensitivity: 0.9905 - specificity: 0.9969 Epoch 18: val_loss improved from 0.38759 to 0.36622, saving model to model_.18-0.366215.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 284ms/step - dice_coef: 0.6620 - dice_coef_edema: 0.5461 - dice_coef_enhancing: 0.6029 - dice_coef_necrotic: 0.5000 - loss: 0.3837 - mean_io_u: 0.4608 - precision: 0.9908 - sensitivity: 0.9905 - specificity: 0.9969 - val_dice_coef: 0.6764 - val_dice_coef_edema: 0.5660 - val_dice_coef_enhancing: 0.6375 - val_dice_coef_necrotic: 0.5050 - val_loss: 0.3662 - val_mean_io_u: 0.8079 - val_precision: 0.9912 - val_sensitivity: 0.9910 - val_specificity: 0.9971 - learning_rate: 0.0010 Epoch 19/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 217ms/step - dice_coef: 0.6610 - dice_coef_edema: 0.5428 - dice_coef_enhancing: 0.5967 - dice_coef_necrotic: 0.5057 - loss: 0.3820 - mean_io_u: 0.6310 - precision: 0.9918 - sensitivity: 0.9916 - specificity: 0.9973 Epoch 19: val_loss improved from 0.36622 to 0.35812, saving model to model_.19-0.358123.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.6611 - dice_coef_edema: 0.5430 - dice_coef_enhancing: 0.5969 - dice_coef_necrotic: 0.5057 - loss: 0.3819 - mean_io_u: 0.6307 - precision: 0.9918 - sensitivity: 0.9916 - specificity: 0.9973 - val_dice_coef: 0.6839 - val_dice_coef_edema: 0.5641 - val_dice_coef_enhancing: 0.6385 - val_dice_coef_necrotic: 0.5354 - val_loss: 0.3581 - val_mean_io_u: 0.8117 - val_precision: 0.9923 - val_sensitivity: 0.9920 - val_specificity: 0.9974 - learning_rate: 0.0010 Epoch 20/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 211ms/step - dice_coef: 0.6928 - dice_coef_edema: 0.6006 - dice_coef_enhancing: 0.6399 - dice_coef_necrotic: 0.5319 - loss: 0.3468 - mean_io_u: 0.5168 - precision: 0.9920 - sensitivity: 0.9918 - specificity: 0.9973 Epoch 20: val_loss did not improve from 0.35812 235/235 ━━━━━━━━━━━━━━━━━━━━ 66s 279ms/step - dice_coef: 0.6928 - dice_coef_edema: 0.6007 - dice_coef_enhancing: 0.6399 - dice_coef_necrotic: 0.5318 - loss: 0.3468 - mean_io_u: 0.5172 - precision: 0.9920 - sensitivity: 0.9918 - specificity: 0.9973 - val_dice_coef: 0.6648 - val_dice_coef_edema: 0.5297 - val_dice_coef_enhancing: 0.6346 - val_dice_coef_necrotic: 0.4991 - val_loss: 0.3851 - val_mean_io_u: 0.7668 - val_precision: 0.9887 - val_sensitivity: 0.9885 - val_specificity: 0.9962 - learning_rate: 0.0010 Epoch 21/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.6851 - dice_coef_edema: 0.5982 - dice_coef_enhancing: 0.6334 - dice_coef_necrotic: 0.5107 - loss: 0.3605 - mean_io_u: 0.6375 - precision: 0.9913 - sensitivity: 0.9911 - specificity: 0.9971 Epoch 21: ReduceLROnPlateau reducing learning rate to 0.00020000000949949026. Epoch 21: val_loss did not improve from 0.35812 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.6852 - dice_coef_edema: 0.5982 - dice_coef_enhancing: 0.6335 - dice_coef_necrotic: 0.5108 - loss: 0.3605 - mean_io_u: 0.6378 - precision: 0.9913 - sensitivity: 0.9911 - specificity: 0.9971 - val_dice_coef: 0.6747 - val_dice_coef_edema: 0.5710 - val_dice_coef_enhancing: 0.6340 - val_dice_coef_necrotic: 0.4957 - val_loss: 0.3692 - val_mean_io_u: 0.8328 - val_precision: 0.9916 - val_sensitivity: 0.9915 - val_specificity: 0.9972 - learning_rate: 0.0010 Epoch 22/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7231 - dice_coef_edema: 0.6543 - dice_coef_enhancing: 0.6763 - dice_coef_necrotic: 0.5635 - loss: 0.3120 - mean_io_u: 0.8161 - precision: 0.9930 - sensitivity: 0.9928 - specificity: 0.9977 Epoch 22: val_loss improved from 0.35812 to 0.33605, saving model to model_.22-0.336055.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.7231 - dice_coef_edema: 0.6544 - dice_coef_enhancing: 0.6763 - dice_coef_necrotic: 0.5636 - loss: 0.3119 - mean_io_u: 0.8161 - precision: 0.9930 - sensitivity: 0.9928 - specificity: 0.9977 - val_dice_coef: 0.7016 - val_dice_coef_edema: 0.6035 - val_dice_coef_enhancing: 0.6564 - val_dice_coef_necrotic: 0.5487 - val_loss: 0.3361 - val_mean_io_u: 0.8097 - val_precision: 0.9923 - val_sensitivity: 0.9921 - val_specificity: 0.9974 - learning_rate: 2.0000e-04 Epoch 23/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 216ms/step - dice_coef: 0.7353 - dice_coef_edema: 0.6859 - dice_coef_enhancing: 0.6833 - dice_coef_necrotic: 0.5722 - loss: 0.2975 - mean_io_u: 0.8078 - precision: 0.9934 - sensitivity: 0.9932 - specificity: 0.9978 Epoch 23: val_loss improved from 0.33605 to 0.32962, saving model to model_.23-0.329619.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.7353 - dice_coef_edema: 0.6859 - dice_coef_enhancing: 0.6834 - dice_coef_necrotic: 0.5722 - loss: 0.2975 - mean_io_u: 0.8079 - precision: 0.9934 - sensitivity: 0.9932 - specificity: 0.9978 - val_dice_coef: 0.7075 - val_dice_coef_edema: 0.6082 - val_dice_coef_enhancing: 0.6577 - val_dice_coef_necrotic: 0.5660 - val_loss: 0.3296 - val_mean_io_u: 0.8308 - val_precision: 0.9927 - val_sensitivity: 0.9926 - val_specificity: 0.9976 - learning_rate: 2.0000e-04 Epoch 24/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.7422 - dice_coef_edema: 0.6789 - dice_coef_enhancing: 0.6894 - dice_coef_necrotic: 0.6018 - loss: 0.2900 - mean_io_u: 0.8136 - precision: 0.9934 - sensitivity: 0.9933 - specificity: 0.9978 Epoch 24: val_loss did not improve from 0.32962 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 287ms/step - dice_coef: 0.7422 - dice_coef_edema: 0.6789 - dice_coef_enhancing: 0.6894 - dice_coef_necrotic: 0.6018 - loss: 0.2900 - mean_io_u: 0.8135 - precision: 0.9934 - sensitivity: 0.9933 - specificity: 0.9978 - val_dice_coef: 0.7047 - val_dice_coef_edema: 0.6032 - val_dice_coef_enhancing: 0.6541 - val_dice_coef_necrotic: 0.5628 - val_loss: 0.3337 - val_mean_io_u: 0.8162 - val_precision: 0.9929 - val_sensitivity: 0.9927 - val_specificity: 0.9976 - learning_rate: 2.0000e-04 Epoch 25/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7430 - dice_coef_edema: 0.6776 - dice_coef_enhancing: 0.6837 - dice_coef_necrotic: 0.6075 - loss: 0.2862 - mean_io_u: 0.8191 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 Epoch 25: ReduceLROnPlateau reducing learning rate to 4.0000001899898055e-05. Epoch 25: val_loss did not improve from 0.32962 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.7430 - dice_coef_edema: 0.6776 - dice_coef_enhancing: 0.6837 - dice_coef_necrotic: 0.6074 - loss: 0.2862 - mean_io_u: 0.8191 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7024 - val_dice_coef_edema: 0.6070 - val_dice_coef_enhancing: 0.6545 - val_dice_coef_necrotic: 0.5497 - val_loss: 0.3390 - val_mean_io_u: 0.8068 - val_precision: 0.9927 - val_sensitivity: 0.9926 - val_specificity: 0.9976 - learning_rate: 2.0000e-04 Epoch 26/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.7560 - dice_coef_edema: 0.7075 - dice_coef_enhancing: 0.6952 - dice_coef_necrotic: 0.6222 - loss: 0.2714 - mean_io_u: 0.8061 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 Epoch 26: val_loss improved from 0.32962 to 0.32874, saving model to model_.26-0.328741.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.7560 - dice_coef_edema: 0.7075 - dice_coef_enhancing: 0.6953 - dice_coef_necrotic: 0.6221 - loss: 0.2714 - mean_io_u: 0.8061 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7093 - val_dice_coef_edema: 0.6134 - val_dice_coef_enhancing: 0.6580 - val_dice_coef_necrotic: 0.5673 - val_loss: 0.3287 - val_mean_io_u: 0.8088 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05 Epoch 27/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7469 - dice_coef_edema: 0.6778 - dice_coef_enhancing: 0.6966 - dice_coef_necrotic: 0.6098 - loss: 0.2840 - mean_io_u: 0.8076 - precision: 0.9939 - sensitivity: 0.9937 - specificity: 0.9980 Epoch 27: val_loss did not improve from 0.32874 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.7469 - dice_coef_edema: 0.6779 - dice_coef_enhancing: 0.6966 - dice_coef_necrotic: 0.6099 - loss: 0.2839 - mean_io_u: 0.8076 - precision: 0.9939 - sensitivity: 0.9938 - specificity: 0.9980 - val_dice_coef: 0.7096 - val_dice_coef_edema: 0.6168 - val_dice_coef_enhancing: 0.6560 - val_dice_coef_necrotic: 0.5669 - val_loss: 0.3299 - val_mean_io_u: 0.8105 - val_precision: 0.9928 - val_sensitivity: 0.9927 - val_specificity: 0.9976 - learning_rate: 4.0000e-05 Epoch 28/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7599 - dice_coef_edema: 0.7115 - dice_coef_enhancing: 0.7222 - dice_coef_necrotic: 0.6048 - loss: 0.2670 - mean_io_u: 0.8077 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 Epoch 28: val_loss improved from 0.32874 to 0.32720, saving model to model_.28-0.327196.weights.h5 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7599 - dice_coef_edema: 0.7115 - dice_coef_enhancing: 0.7221 - dice_coef_necrotic: 0.6049 - loss: 0.2670 - mean_io_u: 0.8077 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 - val_dice_coef: 0.7108 - val_dice_coef_edema: 0.6144 - val_dice_coef_enhancing: 0.6611 - val_dice_coef_necrotic: 0.5694 - val_loss: 0.3272 - val_mean_io_u: 0.8116 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05 Epoch 29/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7409 - dice_coef_edema: 0.6850 - dice_coef_enhancing: 0.6793 - dice_coef_necrotic: 0.5991 - loss: 0.2881 - mean_io_u: 0.8102 - precision: 0.9941 - sensitivity: 0.9940 - specificity: 0.9980 Epoch 29: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.7409 - dice_coef_edema: 0.6851 - dice_coef_enhancing: 0.6794 - dice_coef_necrotic: 0.5992 - loss: 0.2881 - mean_io_u: 0.8102 - precision: 0.9941 - sensitivity: 0.9940 - specificity: 0.9980 - val_dice_coef: 0.7099 - val_dice_coef_edema: 0.6140 - val_dice_coef_enhancing: 0.6583 - val_dice_coef_necrotic: 0.5686 - val_loss: 0.3297 - val_mean_io_u: 0.8175 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05 Epoch 30/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7631 - dice_coef_edema: 0.7128 - dice_coef_enhancing: 0.7037 - dice_coef_necrotic: 0.6356 - loss: 0.2641 - mean_io_u: 0.8152 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 Epoch 30: ReduceLROnPlateau reducing learning rate to 8.000000525498762e-06. Epoch 30: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7630 - dice_coef_edema: 0.7127 - dice_coef_enhancing: 0.7037 - dice_coef_necrotic: 0.6356 - loss: 0.2642 - mean_io_u: 0.8152 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 - val_dice_coef: 0.7084 - val_dice_coef_edema: 0.6103 - val_dice_coef_enhancing: 0.6579 - val_dice_coef_necrotic: 0.5670 - val_loss: 0.3310 - val_mean_io_u: 0.8180 - val_precision: 0.9930 - val_sensitivity: 0.9929 - val_specificity: 0.9977 - learning_rate: 4.0000e-05 Epoch 31/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 226ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.6985 - dice_coef_enhancing: 0.7057 - dice_coef_necrotic: 0.6486 - loss: 0.2667 - mean_io_u: 0.8157 - precision: 0.9938 - sensitivity: 0.9937 - specificity: 0.9979 Epoch 31: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.7634 - dice_coef_edema: 0.6985 - dice_coef_enhancing: 0.7057 - dice_coef_necrotic: 0.6485 - loss: 0.2667 - mean_io_u: 0.8157 - precision: 0.9938 - sensitivity: 0.9937 - specificity: 0.9979 - val_dice_coef: 0.7110 - val_dice_coef_edema: 0.6160 - val_dice_coef_enhancing: 0.6595 - val_dice_coef_necrotic: 0.5699 - val_loss: 0.3279 - val_mean_io_u: 0.8167 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 8.0000e-06 Epoch 32/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.7257 - dice_coef_enhancing: 0.7242 - dice_coef_necrotic: 0.6023 - loss: 0.2614 - mean_io_u: 0.8148 - precision: 0.9949 - sensitivity: 0.9948 - specificity: 0.9983 Epoch 32: ReduceLROnPlateau reducing learning rate to 1.6000001778593287e-06. Epoch 32: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.7256 - dice_coef_enhancing: 0.7241 - dice_coef_necrotic: 0.6024 - loss: 0.2615 - mean_io_u: 0.8148 - precision: 0.9949 - sensitivity: 0.9948 - specificity: 0.9983 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6159 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5710 - val_loss: 0.3275 - val_mean_io_u: 0.8169 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 8.0000e-06 Epoch 33/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7537 - dice_coef_edema: 0.6975 - dice_coef_enhancing: 0.6907 - dice_coef_necrotic: 0.6266 - loss: 0.2746 - mean_io_u: 0.8166 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 Epoch 33: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 287ms/step - dice_coef: 0.7537 - dice_coef_edema: 0.6975 - dice_coef_enhancing: 0.6908 - dice_coef_necrotic: 0.6266 - loss: 0.2746 - mean_io_u: 0.8166 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6160 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8169 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.6000e-06 Epoch 34/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7608 - dice_coef_edema: 0.7112 - dice_coef_enhancing: 0.7124 - dice_coef_necrotic: 0.6198 - loss: 0.2674 - mean_io_u: 0.8151 - precision: 0.9942 - sensitivity: 0.9940 - specificity: 0.9981 Epoch 34: ReduceLROnPlateau reducing learning rate to 1e-06. Epoch 34: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7608 - dice_coef_edema: 0.7112 - dice_coef_enhancing: 0.7124 - dice_coef_necrotic: 0.6199 - loss: 0.2674 - mean_io_u: 0.8151 - precision: 0.9942 - sensitivity: 0.9940 - specificity: 0.9981 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6162 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8168 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.6000e-06 Epoch 35/35 235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 225ms/step - dice_coef: 0.7601 - dice_coef_edema: 0.7063 - dice_coef_enhancing: 0.6862 - dice_coef_necrotic: 0.6484 - loss: 0.2687 - mean_io_u: 0.8157 - precision: 0.9941 - sensitivity: 0.9939 - specificity: 0.9980 Epoch 35: val_loss did not improve from 0.32720 235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 296ms/step - dice_coef: 0.7602 - dice_coef_edema: 0.7063 - dice_coef_enhancing: 0.6863 - dice_coef_necrotic: 0.6484 - loss: 0.2687 - mean_io_u: 0.8157 - precision: 0.9941 - sensitivity: 0.9939 - specificity: 0.9980 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6162 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8168 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.0000e-06
# Save the model
model.save("my_model.keras")
Load The Trained Model¶
history_dict = history.history
# To see what was tracked
print(history_dict.keys())
# Extract metrics
custom_metric_keys = [
"dice_coef",
"precision",
"sensitivity",
"specificity",
"dice_coef_necrotic",
"dice_coef_edema",
"dice_coef_enhancing",
"mean_io_u",
]
# Print header
print("\n Final Custom Training Metrics")
print("=" * 40)
# Loop and print metrics if they exist in history
for key in custom_metric_keys:
if key in history_dict:
# Get the last value in the list
value = history_dict[key][-1]
print(f"{key:<25}: {value:.4f}")
else:
print(f"{key:<25}: [not tracked]")
history_dict = history.history
# To see what was tracked
print(history_dict.keys())
# Extract metrics
custom_metric_keys = [
"dice_coef",
"precision",
"sensitivity",
"specificity",
"dice_coef_necrotic",
"dice_coef_edema",
"dice_coef_enhancing",
"mean_io_u",
]
# Print header
print("\n Final Custom Training Metrics")
print("=" * 40)
# Loop and print metrics if they exist in history
for key in custom_metric_keys:
if key in history_dict:
# Get the last value in the list
value = history_dict[key][-1]
print(f"{key:<25}: {value:.4f}")
else:
print(f"{key:<25}: [not tracked]")
dict_keys(['dice_coef', 'dice_coef_edema', 'dice_coef_enhancing', 'dice_coef_necrotic', 'loss', 'mean_io_u', 'precision', 'sensitivity', 'specificity', 'val_dice_coef', 'val_dice_coef_edema', 'val_dice_coef_enhancing', 'val_dice_coef_necrotic', 'val_loss', 'val_mean_io_u', 'val_precision', 'val_sensitivity', 'val_specificity', 'learning_rate']) Final Custom Training Metrics ======================================== dice_coef : 0.7609 precision : 0.9943 sensitivity : 0.9942 specificity : 0.9981 dice_coef_necrotic : 0.6285 dice_coef_edema : 0.7100 dice_coef_enhancing : 0.7049 mean_io_u : 0.8153
# Define custom metrics as functions and classes (not instantiated objects)
custom_metrics = {
"dice_coef": dice_coef,
"precision": precision,
"sensitivity": sensitivity,
"specificity": specificity,
"dice_coef_necrotic": dice_coef_necrotic,
"dice_coef_edema": dice_coef_edema,
"dice_coef_enhancing": dice_coef_enhancing,
"mean_io_u": MeanIoU(num_classes=4, name="mean_io_u")
}
# Load the model with custom objects
model = load_model("/content/my_model.keras", custom_objects=custom_metrics, compile=False)
# visualizing the training progress of U-Net model over time
## Load training history from CSV
history = pd.read_csv('/content/training.log', sep=',', engine='python')
epochs = range(len(history))
# Define plot colors
train_color = '#0e46a1'
val_color = '#cc6a14'
# Define reusable plot function
def plot_metric(ax, history, train_key, val_key, title, ylabel):
if train_key in history and val_key in history:
ax.plot(epochs, history[train_key], color=train_color, label='Training')
ax.plot(epochs, history[val_key], color=val_color, label='Validation')
ax.set_title(title)
ax.set_xlabel('Epochs')
ax.set_ylabel(ylabel)
ax.legend()
else:
ax.set_title(f"{title} (Not Found)")
ax.axis('off')
# Create 1x4 subplot layout
fig, axes = plt.subplots(1, 3, figsize=(22, 5))
# Plot metrics using safe function
plot_metric(axes[0], history, 'loss', 'val_loss', 'Loss', 'Loss')
plot_metric(axes[1], history, 'dice_coef', 'val_dice_coef', 'Dice Coefficient', 'Dice')
plot_metric(axes[2], history, 'mean_io_u', 'val_mean_io_u', 'Mean IoU', 'IoU')
fig.suptitle('Training History of U-Net Model', fontsize=16, y=1.08)
# Adjusts the spacing between subplots
plt.tight_layout()
plt.show()
# visualizing the training progress of U-Net model over time
## Load training history from CSV
history = pd.read_csv('/content/training.log', sep=',', engine='python')
epochs = range(len(history))
# Define plot colors
train_color = '#0e46a1'
val_color = '#cc6a14'
# Define reusable plot function
def plot_metric(ax, history, train_key, val_key, title, ylabel):
if train_key in history and val_key in history:
ax.plot(epochs, history[train_key], color=train_color, label='Training')
ax.plot(epochs, history[val_key], color=val_color, label='Validation')
ax.set_title(title)
ax.set_xlabel('Epochs')
ax.set_ylabel(ylabel)
ax.legend()
else:
ax.set_title(f"{title} (Not Found)")
ax.axis('off')
# Create 1x4 subplot layout
fig, axes = plt.subplots(1, 3, figsize=(22, 5))
# Plot metrics using safe function
plot_metric(axes[0], history, 'loss', 'val_loss', 'Loss', 'Loss')
plot_metric(axes[1], history, 'dice_coef', 'val_dice_coef', 'Dice Coefficient', 'Dice')
plot_metric(axes[2], history, 'mean_io_u', 'val_mean_io_u', 'Mean IoU', 'IoU')
fig.suptitle('Training History of U-Net Model', fontsize=16, y=1.08)
# Adjusts the spacing between subplots
plt.tight_layout()
plt.show()
custom_metric_keys = [
"dice_coef", "precision", "sensitivity", "specificity",
"dice_coef_necrotic", "dice_coef_edema", "dice_coef_enhancing",
"mean_io_u"
]
print("\n Final Custom Training Metrics (from CSV)")
print("=" * 50)
for key in custom_metric_keys:
if key in history.columns:
print(f"{key:<25}: {history[key].iloc[-1]:.4f}")
else:
print(f"{key:<25}: [not tracked]")
Final Custom Training Metrics (from CSV) ================================================== dice_coef : 0.7609 precision : 0.9943 sensitivity : 0.9942 specificity : 0.9981 dice_coef_necrotic : 0.6285 dice_coef_edema : 0.7100 dice_coef_enhancing : 0.7049 mean_io_u : 0.8153
Visualization Some Samples¶
# Ensure don't exceed the available slices in the 3D scan
def get_safe_volume_slices(volume):
# volume.shape[2] is the number of slices
return min(volume_slices, volume.shape[2] - start_volume)
# Load a 3D MRI scan from a NIfTI file
def image_loader(path):
return np.array(nib.load(path).get_fdata())
# Predict tumor segmentation for a case using flair + t1ce scans
def predict_by_path(case_path, case_id):
flair = image_loader(os.path.join(case_path, f'BraTS20_Training_{case_id}_flair.nii'))
t1ce = image_loader(os.path.join(case_path, f'BraTS20_Training_{case_id}_t1ce.nii'))
# Prevents indexing beyond the number of available slices
safe_slices = get_safe_volume_slices(flair)
X = np.empty((safe_slices, img_size, img_size, 2))
# Extracts the 2D image slice from FLAIR and T1CE
for j in range(safe_slices):
X[j, :, :, 0] = cv2.resize(flair[:, :, j + start_volume], (img_size, img_size))
X[j, :, :, 1] = cv2.resize(t1ce[:, :, j + start_volume], (img_size, img_size))
# Normalizes the input
# verbose=1 shows a progress bar during prediction
return model.predict(X / np.max(X), verbose=1)
# Display original flair, ground truth, and model predictions for a given case and slice
def show_predicts_by_id(case_id, start_slice=60):
path = os.path.join(dataset_path, f'BraTS20_Training_{case_id}')
# Load images
flair = image_loader(os.path.join(path, f'BraTS20_Training_{case_id}_flair.nii'))
ground_truth = image_loader(os.path.join(path, f'BraTS20_Training_{case_id}_seg.nii'))
prediction = predict_by_path(path, case_id)
# Extract individual segmentation classes
core = prediction[:, :, :, 1]
edema = prediction[:, :, :, 2]
enhancing = prediction[:, :, :, 3]
slice_idx = start_slice + start_volume
base_flair = cv2.resize(flair[:, :, slice_idx], (img_size, img_size))
fig, axes = plt.subplots(1, 6, figsize=(24, 6))
for ax in axes:
ax.imshow(base_flair, cmap='gray')
axes[0].set_title('Original Flair')
# INTER_NEAREST : Picks the value of the nearest pixel and aplpha : Able to see the underlying image
axes[1].imshow(cv2.resize(ground_truth[:, :, slice_idx], (img_size, img_size), interpolation=cv2.INTER_NEAREST), cmap='Reds', alpha=0.4)
axes[1].set_title('Ground Truth')
axes[2].imshow(prediction[start_slice, :, :, 1:4].sum(axis=-1), cmap='Reds', alpha=0.4)
axes[2].set_title('All Classes')
axes[3].imshow(edema[start_slice], cmap='OrRd', alpha=0.4)
axes[3].set_title(f'{segmentation_class[2]}')
axes[4].imshow(core[start_slice], cmap='OrRd', alpha=0.4)
axes[4].set_title(f'{segmentation_class[1]}')
axes[5].imshow(enhancing[start_slice], cmap='OrRd', alpha=0.4)
axes[5].set_title(f'{segmentation_class[3]}')
plt.tight_layout()
plt.show()
show_predicts_by_id(case_id='210', start_slice=77)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
show_predicts_by_id(case_id='098', start_slice=77)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
def predict_segmentation(patient_path):
"""Predicts the tumor segmentation for a given patient's MRI scans."""
t1ce_path = patient_path + '_t1ce.nii'
flair_path = patient_path + '_flair.nii'
# Load MRI scans
t1ce_scan = image_loader(t1ce_path)
flair_scan = image_loader(flair_path)
# Get safe slice count
safe_slices = get_safe_volume_slices(flair_scan)
# Create an empty array for model input
X = np.empty((safe_slices, img_size, img_size, 2))
# Resize slices to match the model's expected input shape
for j in range(safe_slices):
X[j, :, :, 0] = cv2.resize(flair_scan[:, :, j + start_volume], (img_size, img_size))
X[j, :, :, 1] = cv2.resize(t1ce_scan[:, :, j + start_volume], (img_size, img_size))
# Normalize input and make predictions
return model.predict(X / np.max(X), verbose=1)
def show_predicted_segmentations(samples_list, slice_index, cmap, norm):
"""Displays the original ground truth segmentation and predicted segmentations."""
# Select a random patient sample
selected_sample = random.choice(samples_list)
# Construct full path to patient's MRI scans
patient_path = os.path.join(dataset_path, selected_sample, selected_sample)
# Predict segmentation for the selected patient
predicted_segmentation = predict_segmentation(patient_path)
# Load ground truth segmentation
ground_truth_path = patient_path + '_seg.nii'
ground_truth = image_loader(ground_truth_path)
# Get the total number of slices
total_slices = ground_truth.shape[2]
# Ensure `slice_index` does not exceed available slices
if slice_index + start_volume >= total_slices:
slice_index = total_slices - start_volume - 1 # Set to the last valid slice
# Resize ground truth segmentation
ground_truth_resized = cv2.resize(ground_truth[:, :, slice_index + start_volume],
(img_size, img_size), interpolation=cv2.INTER_NEAREST)
# Extract different segmentation components
predicted_all = predicted_segmentation[slice_index, :, :, 1:4] # All tumor classes
predicted_background = predicted_segmentation[slice_index, :, :, 0] # Background
predicted_core = predicted_segmentation[slice_index, :, :, 1] # Core tumor
predicted_edema = predicted_segmentation[slice_index, :, :, 2] # Edema
predicted_enhancing = predicted_segmentation[slice_index, :, :, 3] # Enhancing tumor
# Display original and predicted segmentations
print("Patient ID:", selected_sample)
fig, axes = plt.subplots(1, 6, figsize=(25, 20))
# Ground truth segmentation
axes[0].imshow(ground_truth_resized, cmap=cmap, norm=norm)
axes[0].set_title('Ground Truth Segmentation')
# All predicted tumor classes
axes[1].imshow(predicted_all, cmap=cmap, norm=norm)
axes[1].set_title('All Classes')
# Background prediction
axes[2].imshow(predicted_background)
axes[2].set_title('Not Tumor')
# Core tumor prediction
axes[3].imshow(predicted_core)
axes[3].set_title('Core')
# Edema prediction
axes[4].imshow(predicted_edema)
axes[4].set_title('Edema')
# Enhancing tumor prediction
axes[5].imshow(predicted_enhancing)
axes[5].set_title('Enhancing')
# Adjust subplot spacing
plt.subplots_adjust(wspace=0.8)
plt.show()
# Sample
show_predicted_segmentations(test_ids, 60, cmap, norm)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step Patient ID: BraTS20_Training_114
# Sample
show_predicted_segmentations(test_ids, 60, cmap, norm)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step Patient ID: BraTS20_Training_264
Testing¶
# Cheching
import os
print([f for f in os.listdir() if f.endswith(".weights.h5")])
['model_.07-0.557503.weights.h5', 'model_.01-0.853152.weights.h5', 'model_.23-0.329619.weights.h5', 'model_.28-0.327196.weights.h5', 'model_.12-0.423160.weights.h5', 'model_.26-0.328741.weights.h5', 'model_.03-0.737972.weights.h5', 'model_.04-0.665222.weights.h5', 'model_.15-0.395521.weights.h5', 'model_.19-0.358123.weights.h5', 'model_.05-0.627692.weights.h5', 'model_.16-0.387587.weights.h5', 'model_.22-0.336055.weights.h5', 'model_.11-0.441615.weights.h5', 'model_.09-0.468233.weights.h5', 'model_.18-0.366215.weights.h5', 'model_.02-0.775888.weights.h5', 'model_.13-0.405229.weights.h5', 'model_.08-0.515393.weights.h5']
Evaluation¶
# Checking
print(type(test_generator))
<class '__main__.DataGenerator'>
# Compile the model with the same loss and metrics used during training
model.compile(
loss=combined_loss,
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
metrics=[
tf.keras.metrics.MeanIoU(num_classes=4, name="mean_io_u"),
dice_coef,
precision,
sensitivity,
specificity,
dice_coef_necrotic,
dice_coef_edema,
dice_coef_enhancing
]
)
# Evaluate on training set
results = model.evaluate(training_generator, verbose=1)
eval_param = [
"Loss",
"MeanIOU",
"Dice coefficient",
"Precision",
"Sensitivity",
"Specificity",
"Dice coef Necrotic",
"Dice coef Edema",
"Dice coef Enhancing"
]
# Combine results list and eval_param list
results_list = zip(results, eval_param)
# Display each metric with its eval_param
print("\n Model evaluation on the test set:")
for i, (metric, eval_param) in enumerate(results_list):
print(f"{eval_param} : {round(metric, 4)}")
235/235 ━━━━━━━━━━━━━━━━━━━━ 54s 215ms/step - dice_coef: 0.7542 - dice_coef_edema: 0.6991 - dice_coef_enhancing: 0.6955 - dice_coef_necrotic: 0.6220 - loss: 0.2749 - mean_io_u: 0.8137 - precision: 0.9940 - sensitivity: 0.9939 - specificity: 0.9980 Model evaluation on the test set: Loss : 0.2668 MeanIOU : 0.8153 Dice coefficient : 0.7609 Precision : 0.9943 Sensitivity : 0.9942 Specificity : 0.9981 Dice coef Necrotic : 0.6286 Dice coef Edema : 0.7101 Dice coef Enhancing : 0.7049
# Compile the model with the same loss and metrics used during training
model.compile(
loss="categorical_crossentropy",
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
metrics=[
tf.keras.metrics.MeanIoU(num_classes=4, name="mean_io_u"),
dice_coef,
precision,
sensitivity,
specificity,
dice_coef_necrotic,
dice_coef_edema,
dice_coef_enhancing
]
)
# Evaluate on training set
results = model.evaluate(training_generator, verbose=1)
eval_param = [
"Loss",
"MeanIOU",
"Dice coefficient",
"Precision",
"Sensitivity",
"Specificity",
"Dice coef Necrotic",
"Dice coef Edema",
"Dice coef Enhancing"
]
# Combine results list and eval_param list
results_list = zip(results, eval_param)
# Display each metric with its eval_param
print("\n Model evaluation on the test set:")
for i, (metric, eval_param) in enumerate(results_list):
print(f"{eval_param} : {round(metric, 4)}")
235/235 ━━━━━━━━━━━━━━━━━━━━ 53s 213ms/step - dice_coef: 0.7574 - dice_coef_edema: 0.7086 - dice_coef_enhancing: 0.6895 - dice_coef_necrotic: 0.6312 - loss: 0.0276 - mean_io_u: 0.8156 - precision: 0.9943 - sensitivity: 0.9942 - specificity: 0.9981 Model evaluation on the test set: Loss : 0.0272 MeanIOU : 0.8153 Dice coefficient : 0.7609 Precision : 0.9943 Sensitivity : 0.9942 Specificity : 0.9981 Dice coef Necrotic : 0.6286 Dice coef Edema : 0.7101 Dice coef Enhancing : 0.7049